[mythtv-commits] Ticket #12053: ScreenSaverX11Private::ResetScreenSaver()'s use of myth_system() causes memory leak
MythTV
noreply at mythtv.org
Sat Feb 8 05:44:47 UTC 2014
#12053: ScreenSaverX11Private::ResetScreenSaver()'s use of myth_system() causes
memory leak
------------------------------------------+------------------------
Reporter: faginbagin <mythtv@…> | Owner: beirdo
Type: Bug Report - Memory Leak | Status: new
Priority: minor | Milestone: unknown
Component: MythTV - MythSystem | Version: 0.27-fixes
Severity: medium | Keywords:
Ticket locked: 0 |
------------------------------------------+------------------------
After playing a 4 minute video, valgrind reports numerous memory leaks
with a stack trace that looks like this:
{{{
==4331== 708 (32 direct, 676 indirect) bytes in 1 blocks are definitely
lost in loss record 8,952 of 9,574
==4331== at 0x4C2A2DB: malloc (in /usr/lib/valgrind/vgpreload_memcheck-
amd64-linux.so)
==4331== by 0x8C046F9: QMapData::node_create(QMapData::Node**, int,
int) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.4)
==4331== by 0x5F40AE0: QMap<QString, bool>::node_create(QMapData*,
QMapData::Node**, QString const&, bool const&) (qmap.h:453)
==4331== by 0x5F3FC04: QMap<QString, bool>::operator[](QString const&)
(qmap.h:534)
==4331== by 0x6012805: MythSystemLegacy::ProcessFlags(unsigned int)
(mythsystemlegacy.cpp:369)
==4331== by 0x60111ED: MythSystemLegacy::SetCommand(QString const&,
QStringList const&, unsigned int) (mythsystemlegacy.cpp:137)
==4331== by 0x6010A4A: MythSystemLegacy::SetCommand(QString const&,
unsigned int) (mythsystemlegacy.cpp:91)
==4331== by 0x60108B6: MythSystemLegacy::MythSystemLegacy(QString
const&, unsigned int) (mythsystemlegacy.cpp:81)
==4331== by 0x6013653: myth_system(QString const&, unsigned int,
unsigned int) (mythsystemlegacy.cpp:517)
==4331== by 0x6452D00: ScreenSaverX11Private::ResetScreenSaver()
(screensaver-x11.cpp:204)
==4331== by 0x645178D: ScreenSaverX11::resetSlot()
(screensaver-x11.cpp:331)
==4331== by 0x648C4CB: ScreenSaverX11::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (moc_screensaver-x11.cpp:49)
}}}
There were 16 such reports adding up to 242,858 bytes:
{{{
==4331== 708 (32 direct, 676 indirect) bytes in 1 blocks are definitely
lost in loss record 8,952 of 9,574
==4331== 708 (32 direct, 676 indirect) bytes in 1 blocks are definitely
lost in loss record 8,953 of 9,574
==4331== 2,124 (96 direct, 2,028 indirect) bytes in 3 blocks are
definitely lost in loss record 9,288 of 9,574
==4331== 3,154 (64 direct, 3,090 indirect) bytes in 1 blocks are
definitely lost in loss record 9,347 of 9,574
==4331== 3,540 (160 direct, 3,380 indirect) bytes in 5 blocks are
definitely lost in loss record 9,361 of 9,574
==4331== 3,540 (160 direct, 3,380 indirect) bytes in 5 blocks are
definitely lost in loss record 9,362 of 9,574
==4331== 5,600 (256 direct, 5,344 indirect) bytes in 2 blocks are
definitely lost in loss record 9,431 of 9,574
==4331== 6,308 (128 direct, 6,180 indirect) bytes in 2 blocks are
definitely lost in loss record 9,443 of 9,574
==4331== 6,308 (128 direct, 6,180 indirect) bytes in 2 blocks are
definitely lost in loss record 9,444 of 9,574
==4331== 9,462 (408 direct, 9,054 indirect) bytes in 3 blocks are
definitely lost in loss record 9,487 of 9,574
==4331== 11,200 (544 direct, 10,656 indirect) bytes in 4 blocks are
definitely lost in loss record 9,508 of 9,574
==4331== 17,508 (432 direct, 17,076 indirect) bytes in 6 blocks are
definitely lost in loss record 9,528 of 9,574
==4331== 22,078 (448 direct, 21,630 indirect) bytes in 7 blocks are
definitely lost in loss record 9,541 of 9,574
==4331== 29,416 (320 direct, 29,096 indirect) bytes in 10 blocks are
definitely lost in loss record 9,545 of 9,574
==4331== 36,432 (1,632 direct, 34,800 indirect) bytes in 12 blocks are
definitely lost in loss record 9,549 of 9,574
==4331== 84,772 (7,616 direct, 77,156 indirect) bytes in 28 blocks are
definitely lost in loss record 9,560 of 9,574
}}}
It is my hope the above log snippets are sufficient information for
someone familiar with myth_system to plug the leak. If not, I can provide
the valgrind & mythfrontend logs in case someone wants the full details.
WRT the mythfrontend log, I did not have -v system enabled, only -v
general,playback,vbi --loglevel debug.
--
Ticket URL: <https://code.mythtv.org/trac/ticket/12053>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list