[mythtv-commits] Ticket #4861: Backend crash when tuning livetv

MythTV mythtv at cvs.mythtv.org
Tue Mar 4 19:51:23 UTC 2008


#4861: Backend crash when tuning livetv
-----------------------+----------------------------------------------------
 Reporter:  anonymous  |        Owner:  ijr    
     Type:  defect     |       Status:  new    
 Priority:  major      |    Milestone:  unknown
Component:  mythtv     |      Version:  head   
 Severity:  medium     |   Resolution:         
  Mlocked:  0          |  
-----------------------+----------------------------------------------------

Comment(by tim at electronghost.co.uk):

 Here's another similar crash from r16387 (with local modifications):

 {{{
 #0  0x0000003a488708c7 in malloc_consolidate () from /lib64/libc.so.6
 #1  0x0000003a48872f3d in _int_malloc () from /lib64/libc.so.6
 #2  0x0000003a488748fa in malloc () from /lib64/libc.so.6
 #3  0x00002aaaaecfc1ed in operator new () from /usr/lib64/libstdc++.so.6
 #4  0x00002aaaaecfc309 in operator new[] () from /usr/lib64/libstdc++.so.6
 #5  0x00002aaaae07574d in QString::setLength ()
    from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
 #6  0x00002aaaae07945c in QString::operator+= ()
    from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
 #7  0x00002aaaae08c02b in QStringList::join ()
    from /usr/lib64/qt-3.3/lib/libqt-mt.so.3
 #8  0x00002aaaacf2514a in MythEvent (this=0x952fc0, lmessage=@0x4e616098,
     lextradata=@0x4e6160a0) at mythevent.cpp:25
 #9  0x00002aaaacf2599d in MythEvent::clone (this=0x4e616080) at
 mythevent.h:42
 #10 0x00002aaaacf336ed in MythObservable::dispatch (this=0x853ab0,
     event=@0x4e616080) at mythobservable.cpp:45
 #11 0x00002aaaacedb6ce in MythContext::dispatch (this=0x853a60,
     event=@0x4e616080) at mythcontext.cpp:3978
 #12 0x00002aaaab279bd2 in SignalMonitor::MonitorLoop (this=0x2aaabc036390)
     at signalmonitor.cpp:306
 #13 0x00002aaaab279778 in SignalMonitor::SpawnMonitorLoop
 (self=0x2aaabc036390)
     at signalmonitor.cpp:333
 #14 0x00002aaaaea2a407 in start_thread () from /lib64/libpthread.so.0
 #15 0x0000003a488d4b0d in clone () from /lib64/libc.so.6
 }}}

 The relevant local modification here is:

 {{{
 MythEvent::MythEvent(const QString &lmessage, const QStringList
 &lextradata) :
     QCustomEvent(MythEventMessage)
 {
     QString crashme;
     crashme=lextradata.join(" // ");
     message   = QDeepCopy<QString>(lmessage);
     extradata = QDeepCopy<QStringList>(lextradata);
     crashme=extradata.join(" // ");
 }
 }}}

 It is the *second* crashme, after the deep copy, that has segfaulted.

 If I take out the 'crashme's I have scattered about the place, I get
 segfaults in various places similar to the one submitted by cg; adding the
 'crashme's just makes them happen closer to when the corruption occurred.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/4861#comment:2>
MythTV <http://svn.mythtv.org/trac>
MythTV


More information about the mythtv-commits mailing list