[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