[mythtv-commits] Ticket #6734: Memory leak in EIT scanner (UK DVB-T)

MythTV mythtv at cvs.mythtv.org
Mon Apr 19 23:13:41 UTC 2010


#6734: Memory leak in EIT scanner (UK DVB-T)
-----------------------------------------------------------------+----------
 Reporter:  Nick Morrott <knowledgejunkie (at) gmail (dot) com>  |       Owner:  stuarta       
     Type:  defect                                               |      Status:  infoneeded_new
 Priority:  minor                                                |   Milestone:  0.23          
Component:  MythTV - EIT                                         |     Version:  0.22-fixes    
 Severity:  medium                                               |     Mlocked:  0             
-----------------------------------------------------------------+----------

Comment(by Nick Morrott <knowledgejunkie (at) gmail (dot) com>):

 This evening I left valgrind running on a fresh checkout of trunk at
 r24200 for about 3 hours. This is on a Fedora 11 box with 1 DVB-T card and
 1 DVB-S card. EIT is enabled for both cards.

 mythbackend details:

 {{{
 MythTV Version   : exported
 MythTV Branch    : trunk
 Network Protocol : 56
 Library API      : 0.23.20100417-1
 QT Version       : 4.6.2
 Options compiled in:
  linux debug use_hidesyms using_oss using_alsa using_pulse
 using_pulseoutput using_backend using_dvb using_frontend using_hdpvr
 using_iptv using_ivtv using_lirc using_mheg using_opengl_video
 using_opengl_vsync using_qtdbus using_qtwebkit using_v4l using_valgrind
 using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw
 using_bindings_perl using_bindings_python using_opengl
 using_ffmpeg_threads using_live using_mheg
 }}}

 The summary of the leaktest (valgrind was run for approx 3 hours) was:

 {{{
 ==30155== LEAK SUMMARY:
 ==30155==    definitely lost: 116 bytes in 1 blocks.
 ==30155==      possibly lost: 962,816 bytes in 46,889 blocks.
 ==30155==    still reachable: 4,914,033 bytes in 23,232 blocks.
 ==30155==         suppressed: 0 bytes in 0 blocks.
 }}}

 The definitely lost record was:

 {{{
 ==30155== 116 bytes in 1 blocks are definitely lost in loss record 362 of
 475
 ==30155==    at 0x4004E5C: calloc (vg_replace_malloc.c:397)
 ==30155==    by 0x650D783: my_thread_init (in
 /usr/lib/mysql/libmysqlclient_r.so.16.0.0)
 ==30155==    by 0x6506BA4: mysql_server_init (in
 /usr/lib/mysql/libmysqlclient_r.so.16.0.0)
 ==30155==    by 0x6532438: mysql_init (in
 /usr/lib/mysql/libmysqlclient_r.so.16.0.0)
 ==30155==    by 0x401FDCD: (within
 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so)
 ==30155==    by 0x5C8D190: QSqlDatabase::open() (in
 /usr/lib/libQtSql.so.4.6.2)
 ==30155==    by 0x5482386: MSqlDatabase::OpenDatabase() (mythdbcon.cpp:87)
 ==30155==    by 0xCBFFCD: clone (in /lib/libc-2.10.2.so)
 }}}

 Most of the "probably lost" memory was:

 {{{
 ==30155== 958,124 bytes in 46,863 blocks are possibly lost in loss record
 474 of 475
 ==30155==    at 0x4006F3D: malloc (vg_replace_malloc.c:207)
 ==30155==    by 0x5E393EC: qMalloc(unsigned int) (in
 /usr/lib/libQtCore.so.4.6.2)
 ==30155==    by 0x5E6C2C6: QMapData::node_create(QMapData::Node**, int,
 int) (in /usr/lib/libQtCore.so.4.6.2)
 ==30155==    by 0x46FA6A7: QMap<unsigned int, unsigned long
 long>::node_create(QMapData*, QMapData::Node**, unsigned int const&,
 unsigned long long const&) (qmap.h:428)
 ==30155==    by 0xCBFFCD: clone (in /lib/libc-2.10.2.so)
 }}}


 The full valgrind log is attached.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/6734#comment:14>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list