[mythtv] Remote playback crashes

Bruce Markey mythtv-dev@snowman.net
Thu Jan 2 12:45:11 EST 2003


I've been seeing seg faults when running the frontend
on a different machine than the backend. Since localhost
is still hardcoded in the source, I've assumed that this
wasn't supported yet so excuse me if I'm jumping the gun
on this. However, it seems this should work but my guess
is there may be timing issues if the data doesn't get to
the player in time due to network latency. Here are two
different examples.

--  bjm

// Started playback of a recording from remote backend.
// Seg fault at the beginning of playback.

Starting program: /usr/local/bin/mythfrontend
[New Thread 1024 (LWP 4747)]
connecting to backend server: nordvid:6543
[New Thread 2049 (LWP 4762)]
[New Thread 1026 (LWP 4763)]
Changing from None to WatchingPreRecorded
[New Thread 2051 (LWP 4764)]
Over/underscanning. V: 0.020000, H: 0.020000, XOff: 2, YOff: 1
Using XV port 59
[New Thread 3076 (LWP 4765)]
[New Thread 4101 (LWP 4766)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 2051 (LWP 4764)]
0x40531c14 in QSocket::flush () from /usr/lib/libqt-mt.so.3
(gdb) bt full
#0  0x40531c14 in QSocket::flush () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#1  0x400c6873 in WriteStringList (socket=0x82b8e98, list=@0xbf5ff920)
     at util.cpp:38
         str = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8246678, static shared_null = 0x8246678}, d = 0x83df2e8,
   static shared_null = 0x8246678}
         utf8 = {<QMemArray<char>> = {<QGArray> = {shd = 0x83dfbb8,
       _vptr. = 0x406f6058 <QCString virtual table>}, <No data fields>}, 
<No data fields>}
         size = 0
         written = 50
#2  0x400ab535 in RemoteFile::RequestBlock (this=0x82b8298, size=128000)
     at remotefile.cpp:183
         this = (RemoteFile *) 0x82b8298
         strlist = {<QValueList<QString>> = {sh = 0x82dae88}, <No data 
fields>}
#3  0x080b6ae7 in RingBuffer::safe_read (this=0x82b8fc0, rf=0x82b8298,
     data=0x43928008, sz=23099) at RingBuffer.cpp:415
         reqsize = 128000
         this = (RingBuffer *) 0x82b8fc0
         ret = 0
         tot = 0
---Type <return> to continue, or q <return> to quit---
         zerocnt = 0
         sock = (QSocket *) 0x82bb1e0
#4  0x080b6bc4 in RingBuffer::Read (this=0x82b8fc0, buf=0x43928008,
     count=23099) at RingBuffer.cpp:448
         this = (RingBuffer *) 0x82b8fc0
         ret = -1
#5  0x080920cd in NuppelVideoPlayer::GetFrame (this=0x431b2008, onlyvideo=0)
     at NuppelVideoPlayer.cpp:1107
         currentposition = 116201
         gotvideo = 0
         seeked = 0
         ret = false
         seeklen = 0
#6  0x08093e0a in NuppelVideoPlayer::StartPlaying (this=0x431b2008)
     at NuppelVideoPlayer.cpp:1855
         this = (NuppelVideoPlayer *) 0x431b2008
         output_audio = 3076
         output_video = 4101
#7  0x08089a08 in SpawnDecode (param=0x431b2008) at tv_play.cpp:39
         nvp = (NuppelVideoPlayer *) 0x431b2008
#8  0x4072afa5 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0x4072afed in pthread_start_thread_event () from /lib/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
(gdb)

// backend then had a thread spinning
// (using all available CPU but no frontend or recording)

// Restarted backend and frontend. Seg fault ~3min into playback.

(gdb) run
Starting program: /usr/local/bin/mythfrontend
[New Thread 1024 (LWP 4791)]
connecting to backend server: nordvid:6543
[New Thread 2049 (LWP 4820)]
[New Thread 1026 (LWP 4821)]
Changing from None to WatchingPreRecorded
[New Thread 2051 (LWP 4822)]
Over/underscanning. V: 0.020000, H: 0.020000, XOff: 2, YOff: 1
Using XV port 59
[New Thread 3076 (LWP 4823)]
[New Thread 4101 (LWP 4824)]
Delaying to next trigger: 17734004
Delaying to next trigger: 14986825
Delaying to next trigger: 11570489
Delaying to next trigger: 11408821
Delaying to next trigger: 11759482
Delaying to next trigger: 7428272
slice end not reached but screenspace end (494 left 11D0A2)
concealing errors

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 2051 (LWP 4822)]
0x4053195e in QSocket::consumeReadBuf () from /usr/lib/libqt-mt.so.3
(gdb) bt full
#0  0x4053195e in QSocket::consumeReadBuf () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#1  0x4053205c in QSocket::readBlock () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2  0x400ab838 in RemoteFile::Seek (this=0x82c1270, pos=-12, whence=1,
     curpos=37095238) at remotefile.cpp:206
         this = (RemoteFile *) 0x82c1270
         strlist = {<QValueList<QString>> = {sh = 0x84249b8}, <No data 
fields>}
         avail = 127117
         trash = 0x8459d60 "\211?:*\005?P??e\2230w6(S\226_k=D)?i??F1 
\005??\002\036\025Qx????\206\016??0r(\021????\a\002V:MU?b\224?\203???\ 
t??\232??\00180w\234 M?O?\200t\t`?G\203\a??t?3?\230l\234??\"A\036???\ 
b/PSy?w\\\v1\t$??FI??\206\031?X\216iH\006e?\005??[\b?\211???\212@\025D! 
\220?\v\202?A??"
         retval = 4644062777900530020
#3  0x080b70bf in RingBuffer::Seek (this=0x82b8d60, pos=-12, whence=1)
     at RingBuffer.cpp:598
         this = (RingBuffer *) 0x82b8d60
         ret = -1
#4  0x08091f7b in NuppelVideoPlayer::GetFrame (this=0x431cd008, onlyvideo=0)
     at NuppelVideoPlayer.cpp:1073
         currentposition = 37095226
         gotvideo = 0
         seeked = 0
---Type <return> to continue, or q <return> to quit---
         ret = false
         seeklen = 0
#5  0x08093e0a in NuppelVideoPlayer::StartPlaying (this=0x431cd008)
     at NuppelVideoPlayer.cpp:1855
         this = (NuppelVideoPlayer *) 0x431cd008
         output_audio = 3076
         output_video = 4101
#6  0x08089a08 in SpawnDecode (param=0x431cd008) at tv_play.cpp:39
         nvp = (NuppelVideoPlayer *) 0x431cd008
#7  0x4072afa5 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8  0x4072afed in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
(gdb)




More information about the mythtv-dev mailing list