[mythtv-commits] Ticket #4854: Backend crashes with MythEvents; probable memory corruption

MythTV mythtv at cvs.mythtv.org
Tue Mar 4 08:48:38 UTC 2008


#4854: Backend crashes with MythEvents; probable memory corruption
-------------------------------------+--------------------------------------
 Reporter:  tim at electronghost.co.uk  |       Owner:  ijr    
     Type:  defect                   |      Status:  new    
 Priority:  major                    |   Milestone:  unknown
Component:  mythtv                   |     Version:  unknown
 Severity:  high                     |     Mlocked:  0      
-------------------------------------+--------------------------------------
 On an x86_64 box, watching LiveTV and channel hopping (which generates
 plenty of MythEvents), I get a backend crash within about 6 channel
 changes.

 I've investigated where the crashes occur with kdbg, and they are caused
 by a corrupted 'extradata' in a MythEvent; instrumenting up mythevent.h
 and mythevent.cpp with a bunch of 'QString crashme=extradata.join(" // ")'
 statements and feeding the core dump to kdbg shows a corrupted extradata
 field 'most every crash.

 However, it's most often the one in the ExtraDataList() method which
 fires, and not the one in the constructor, indicating that the QStringList
 was fine when it was added, and after it was deep copied.

 This leads me to think that someone, somewhere, is writing to memory when
 they shouldn't be :-)

 I've spent some time trying to get it to happen with valgrind, but have
 been unable to produce the problem in that circumstance, so I wonder if
 it's timing-related? Possibly something is missing a mutex that should
 have one? The backend is running on a Core2Duo, so threading problems
 might show up that wouldn't on a single core system.

 I'm quite happy to try things. C++ isn't my first language but I can speak
 pidgin :-)

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/4854>
MythTV <http://svn.mythtv.org/trac>
MythTV


More information about the mythtv-commits mailing list