[mythtv] errors thrown up by valgrind
Simon Kenyon
simon at koala.ie
Fri Nov 30 09:18:07 UTC 2007
i run gentoo everywhere and i recently updated all my machines.
since then i've had my slave backend crapping out with a glibc malloc error.
so last night i ran it under valgrind (as suggested recently on this list).
i (of course) could not get it to fall over, but in the process did
catch a few things that may be of interest.
on the other hand they may not.
i'm assuming that the "invalid read of size 4 by dlopen()" is an artifact
likewise for operator new[] in QString::unicodeToLatin1()
regards
--
simon
2 errors in context 5 of 27:
Thread 18:
Syscall param ioctl(generic) points to uninitialised byte(s)
at 0x4000882: (within /lib/ld-2.6.1.so)
by 0x48AE8CC: MpegRecorder::Open() (mpegrecorder.cpp:792)
by 0x48A51CE: MpegRecorder::StartRecording() (mpegrecorder.cpp:797)
by 0x47BB557: TVRec::RecorderThread(void*) (tv_rec.cpp:1133)
by 0x61A418A: (within /lib/libpthread-2.6.1.so)
by 0x638D24D: clone (in /lib/libc-2.6.1.so)
Address 0x10AFAE3C is on thread 18's stack
10 errors in context 17 of 27:
Conditional jump or move depends on uninitialised value(s)
at 0x4E26454: ff_ac3_parse_header (ac3_parser.c:46)
by 0x4B166CD: av_probe_input_format2 (utils.c:288)
by 0x4B16758: av_probe_input_format (utils.c:304)
by 0x45FEA4A: AvFormatDecoder::OpenFile(RingBuffer*, bool, char*,
int) (avformatdecoder.cpp:820)
by 0x45B1230: NuppelVideoPlayer::OpenFile(bool, unsigned, bool)
(NuppelVideoPlayer.cpp:1114)
by 0x45B2A97: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5312)
by 0x45B465C: NuppelVideoPlayer::GetScreenGrab(int, int&, int&, int&,
float&) (NuppelVideoPlayer.cpp:5277)
by 0x442AAF4: PreviewGenerator::GetScreenGrab(ProgramInfo const*,
QString const&, int, int&, int&, int&, float&) (previewgenerator.cpp:487)
by 0x442CAA8: PreviewGenerator::LocalPreviewRun()
(previewgenerator.cpp:292)
by 0x442CF53: PreviewGenerator::Run() (previewgenerator.cpp:160)
by 0x442DC14: PreviewGenerator::PreviewRun(void*)
(previewgenerator.cpp:180)
by 0x61A418A: (within /lib/libpthread-2.6.1.so)
10 errors in context 18 of 27:
Conditional jump or move depends on uninitialised value(s)
at 0x4E26454: ff_ac3_parse_header (ac3_parser.c:46)
by 0x4B166CD: av_probe_input_format2 (utils.c:288)
by 0x4B16758: av_probe_input_format (utils.c:304)
by 0x45F01DB: AvFormatDecoder::CanHandle(char*, QString const&, int)
(avformatdecoder.cpp:739)
by 0x45B0AB0: NuppelVideoPlayer::OpenFile(bool, unsigned, bool)
(NuppelVideoPlayer.cpp:1079)
by 0x45B2A97: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5312)
by 0x45B465C: NuppelVideoPlayer::GetScreenGrab(int, int&, int&, int&,
float&) (NuppelVideoPlayer.cpp:5277)
by 0x442AAF4: PreviewGenerator::GetScreenGrab(ProgramInfo const*,
QString const&, int, int&, int&, int&, float&) (previewgenerator.cpp:487)
by 0x442CAA8: PreviewGenerator::LocalPreviewRun()
(previewgenerator.cpp:292)
by 0x442CF53: PreviewGenerator::Run() (previewgenerator.cpp:160)
by 0x442DC14: PreviewGenerator::PreviewRun(void*)
(previewgenerator.cpp:180)
by 0x61A418A: (within /lib/libpthread-2.6.1.so)
20 bytes in 1 blocks are possibly lost in loss record 83 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x5E11A3C: QString::setLength(unsigned) (in
/usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x5E11E8B: QString::real_detach() (in /usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x8079456: QString::detach() (qstring.h:854)
by 0x80794C9: QDeepCopy<QString>::operator QString() (qdeepcopy.h:69)
by 0x450CC29: DBChannel::operator=(DBChannel const&) (channelutil.cpp:33)
by 0x4514643: DBChannel::DBChannel(DBChannel const&) (channelutil.cpp:21)
by 0x451D6D2: void std::_Construct<DBChannel, DBChannel>(DBChannel*,
DBChannel const&) (stl_construct.h:81)
by 0x451DA7A: DBChannel*
std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<DBChannel
const*, std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*, __false_type)
(stl_uninitialized.h:86)
by 0x451DB22: DBChannel*
std::uninitialized_copy<__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*) (stl_uninitialized.h:113)
by 0x451DB54: DBChannel*
std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<DBChannel
const*, std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*, DBChannel>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*, std::allocator<DBChannel>)
(stl_uninitialized.h:254)
by 0x473AD34: std::vector<DBChannel, std::allocator<DBChannel>
>::vector(std::vector<DBChannel, std::allocator<DBChannel> > const&)
(stl_vector.h:234)
20 bytes in 1 blocks are possibly lost in loss record 84 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x5E17354: QString::QString(char const*) (in
/usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x402E58E: QMYSQLResult::data(int) (in
/usr/qt/3/plugins/sqldrivers/libqsqlmysql.so)
by 0x5D989FA: QSqlQuery::value(int) const (in
/usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x46A1AD3: VideoDisplayProfile::LoadDB(unsigned)
(videodisplayprofile.cpp:408)
by 0x46A3BC0: VideoDisplayProfile::VideoDisplayProfile()
(videodisplayprofile.cpp:213)
by 0x466AC5A: VideoOutput::VideoOutput() (videooutbase.cpp:289)
by 0x466F838: VideoOutputNull::VideoOutputNull() (videoout_null.cpp:16)
by 0x45B169A: NuppelVideoPlayer::InitVideo() (NuppelVideoPlayer.cpp:561)
by 0x45B3A94: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5339)
by 0x45B465C: NuppelVideoPlayer::GetScreenGrab(int, int&, int&, int&,
float&) (NuppelVideoPlayer.cpp:5277)
by 0x442AAF4: PreviewGenerator::GetScreenGrab(ProgramInfo const*,
QString const&, int, int&, int&, int&, float&) (previewgenerator.cpp:487)
2,280 bytes in 15 blocks are possibly lost in loss record 278 of 483
at 0x4021ABE: calloc (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x4010988: (within /lib/ld-2.6.1.so)
by 0x4010A4B: _dl_allocate_tls (in /lib/ld-2.6.1.so)
by 0x61A49A0: pthread_create (in /lib/libpthread-2.6.1.so)
by 0x43772B3: JobQueue::JobQueue(bool) (jobqueue.cpp:41)
by 0x8094CCA: main (main.cpp:646)
31,734 (3,264 direct, 28,470 indirect) bytes in 12 blocks are definitely
lost in loss record 291 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x42AA93E: ProgramInfo::GetProgramFromRecorded(QString const&,
QString const&) (programinfo.cpp:871)
by 0x42AC01D: ProgramInfo::GetProgramFromRecorded(QString const&,
QDateTime const&) (programinfo.cpp:840)
by 0x42CF9D6: ProgramInfo::GetProgramFromBasename(QString)
(programinfo.cpp:827)
by 0x8098426: MainServer::LocalFilePath(QUrl&) (mainserver.cpp:4123)
by 0x80B372F: MainServer::HandleAnnounce(QStringList&, QStringList,
MythSocket*) (mainserver.cpp:1000)
by 0x80B6BC4: MainServer::ProcessRequestWork(MythSocket*)
(mainserver.cpp:316)
by 0x80BAFBA: MainServer::ProcessRequest(MythSocket*)
(mainserver.cpp:285)
by 0x80C42E9: ProcessRequestThread::run() (mainserver.cpp:142)
by 0x5AD7F82: QThreadInstance::start(void*) (in
/usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x61A418A: (within /lib/libpthread-2.6.1.so)
by 0x638D24D: clone (in /lib/libc-2.6.1.so)
13,228 (336 direct, 12,892 indirect) bytes in 14 blocks are definitely
lost in loss record 293 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x808F6C4: QMapPrivate<QString, QString>::insert(QMapNodeBase*,
QMapNodeBase*, QString const&) (qmap.h:552)
by 0x808F8F3: QMapPrivate<QString, QString>::insertSingle(QString
const&) (qmap.h:535)
by 0x808F9A1: QMap<QString, QString>::insert(QString const&, QString
const&, bool) (qmap.h:822)
by 0x808FA87: QMap<QString, QString>::operator[](QString const&)
(qmap.h:803)
by 0x46A6CE4: ProfileItem::Set(QString const&, QString const&)
(videodisplayprofile.h:33)
by 0x46A1B36: VideoDisplayProfile::LoadDB(unsigned)
(videodisplayprofile.cpp:408)
by 0x46A3BC0: VideoDisplayProfile::VideoDisplayProfile()
(videodisplayprofile.cpp:213)
by 0x466AC5A: VideoOutput::VideoOutput() (videooutbase.cpp:289)
by 0x466F838: VideoOutputNull::VideoOutputNull() (videoout_null.cpp:16)
by 0x45B169A: NuppelVideoPlayer::InitVideo() (NuppelVideoPlayer.cpp:561)
by 0x45B3A94: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5339)
1,416 (48 direct, 1,368 indirect) bytes in 2 blocks are definitely lost
in loss record 294 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x808F148: QMapPrivate<QString, QString>::copy(QMapNode<QString,
QString>*) (qmap.h:457)
by 0x808F1AD: QMapPrivate<QString, QString>::copy(QMapNode<QString,
QString>*) (qmap.h:460)
by 0x808F2D7: QMapPrivate<QString,
QString>::QMapPrivate(QMapPrivate<QString, QString> const*) (qmap.h:445)
by 0x808F35C: QMap<QString, QString>::detachInternal() (qmap.h:840)
by 0x808F3A8: QMap<QString, QString>::detach() (qmap.h:739)
by 0x808FA01: QMap<QString, QString>::operator[](QString const&)
(qmap.h:799)
by 0x4698925: VideoDisplayProfile::SetPreference(QString const&,
QString const&) (videodisplayprofile.cpp:346)
by 0x46A055C: VideoDisplayProfile::SetVideoRenderer(QString const&)
(videodisplayprofile.cpp:278)
by 0x466E6FB: VideoOutputNull::Init(int, int, float, unsigned long,
int, int, int, int, unsigned long) (videoout_null.cpp:110)
by 0x45B171E: NuppelVideoPlayer::InitVideo() (NuppelVideoPlayer.cpp:562)
by 0x45B3A94: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5339)
30,238 (400 direct, 29,838 indirect) bytes in 10 blocks are definitely
lost in loss record 432 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x466AC46: VideoOutput::VideoOutput() (videooutbase.cpp:289)
by 0x466F838: VideoOutputNull::VideoOutputNull() (videoout_null.cpp:16)
by 0x45B169A: NuppelVideoPlayer::InitVideo() (NuppelVideoPlayer.cpp:561)
by 0x45B3A94: NuppelVideoPlayer::GetScreenGrabAtFrame(long long,
bool, int&, int&, int&, float&) (NuppelVideoPlayer.cpp:5339)
by 0x45B465C: NuppelVideoPlayer::GetScreenGrab(int, int&, int&, int&,
float&) (NuppelVideoPlayer.cpp:5277)
by 0x442AAF4: PreviewGenerator::GetScreenGrab(ProgramInfo const*,
QString const&, int, int&, int&, int&, float&) (previewgenerator.cpp:487)
by 0x442CAA8: PreviewGenerator::LocalPreviewRun()
(previewgenerator.cpp:292)
by 0x442CF53: PreviewGenerator::Run() (previewgenerator.cpp:160)
by 0x442DC14: PreviewGenerator::PreviewRun(void*)
(previewgenerator.cpp:180)
by 0x61A418A: (within /lib/libpthread-2.6.1.so)
by 0x638D24D: clone (in /lib/libc-2.6.1.so)
1,200 bytes in 1 blocks are definitely lost in loss record 452 of 483
at 0x4021ABE: calloc (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x63AA005: getifaddrs (in /lib/libc-2.6.1.so)
by 0x50C7CD5: GetIPAddressList(QStringList&) (upnputil.cpp:67)
by 0x50BFB16: UPnp::Initialize(int, HttpServer*) (upnp.cpp:75)
by 0x5345E6C: MythContextPrivate::InitUPnP() (mythcontext.cpp:1166)
by 0x5346809: MythContextPrivate::DefaultUPnP(QString&)
(mythcontext.cpp:1359)
by 0x5354DAE: MythContextPrivate::FindDatabase(bool, bool)
(mythcontext.cpp:586)
by 0x53557A7: MythContextPrivate::Init(bool, UPnp*, bool, bool)
(mythcontext.cpp:538)
by 0x5355C84: MythContext::Init(bool, UPnp*, bool, bool)
(mythcontext.cpp:1450)
by 0x8093201: main (main.cpp:486)
21,264 (104 direct, 21,160 indirect) bytes in 2 blocks are definitely
lost in loss record 472 of 483
at 0x4023194: operator new(unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x4735D47: ChannelBase::InitializeInputs() (channelbase.cpp:422)
by 0x481ED68: Channel::InitializeInputs() (channel.cpp:229)
by 0x48202D6: Channel::Open() (channel.cpp:83)
by 0x47DF1AF: TVRec::CreateChannel(QString const&) (tv_rec.cpp:201)
by 0x47E2C47: TVRec::Init() (tv_rec.cpp:242)
by 0x8090E11: setupTVs(bool, bool&) (main.cpp:145)
by 0x8094AD5: main (main.cpp:618)
128 bytes in 1 blocks are possibly lost in loss record 473 of 483
at 0x4022E14: operator new[](unsigned) (in
/usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
by 0x5E119EE: QString::setLength(unsigned) (in
/usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x5E11E8B: QString::real_detach() (in /usr/qt/3/lib/libqt-mt.so.3.3.8)
by 0x8079456: QString::detach() (qstring.h:854)
by 0x80794C9: QDeepCopy<QString>::operator QString() (qdeepcopy.h:69)
by 0x450CCB7: DBChannel::operator=(DBChannel const&) (channelutil.cpp:34)
by 0x4514643: DBChannel::DBChannel(DBChannel const&) (channelutil.cpp:21)
by 0x451D6D2: void std::_Construct<DBChannel, DBChannel>(DBChannel*,
DBChannel const&) (stl_construct.h:81)
by 0x451DA7A: DBChannel*
std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<DBChannel
const*, std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*, __false_type)
(stl_uninitialized.h:86)
by 0x451DB22: DBChannel*
std::uninitialized_copy<__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*) (stl_uninitialized.h:113)
by 0x451DB54: DBChannel*
std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<DBChannel
const*, std::vector<DBChannel, std::allocator<DBChannel> > >,
DBChannel*, DBChannel>(__gnu_cxx::__normal_iterator<DBChannel const*,
std::vector<DBChannel, std::allocator<DBChannel> > >,
__gnu_cxx::__normal_iterator<DBChannel const*, std::vector<DBChannel,
std::allocator<DBChannel> > >, DBChannel*, std::allocator<DBChannel>)
(stl_uninitialized.h:254)
by 0x473AD34: std::vector<DBChannel, std::allocator<DBChannel>
>::vector(std::vector<DBChannel, std::allocator<DBChannel> > const&)
(stl_vector.h:234)
More information about the mythtv-dev
mailing list