Mailing List Archive

mythtv freezes when changing channels
I'm not quite sure how to troubleshoot this, because I get no terminal
output when this problem occurs. I have installed the latest MythTV CVS
and the latest ivtv CVS drivers for my PVR-250.

If I change the channel more than once, even when using the "O" browse
mode, it just freezes up and I have to kill it. The first channel
change goes fine, but the second time is when it freees up. This happens
every time.

Is there a way to view more debugging info? There's no output from
either mythfrontend or mythbackend.

Thanks!
Re: mythtv freezes when changing channels [ In reply to ]
The answer depends on what the"it' is that you have to kill and how you
kill "it".

If you mean that mythfrontend freezes and you have to kill (or kill -9)
just the mythfrontend process (from a console or an ssh login) ... then you
can try what I do. I adjust my Myth GUI size so it is slightly smaller than
the screen, then I start mythfrontend from an xterm. If it freezes, I use
my access to the blackbox control bar (center bottom of the screen) to
switch to the xterm to see what errors are reported there.

There are many variants on this approach possible, depending mostly on
which window manager you are running. If you can't get access to the xterm
nohow, then try redirecting its STDOUT and STDERR to a file when you start
mythfrontend.

At 11:24 AM 5/26/2003 -0500, Ben Davis wrote:
>I'm not quite sure how to troubleshoot this, because I get no terminal
>output when this problem occurs. I have installed the latest MythTV CVS
>and the latest ivtv CVS drivers for my PVR-250.
>
>If I change the channel more than once, even when using the "O" browse
>mode, it just freezes up and I have to kill it. The first channel change
>goes fine, but the second time is when it freees up. This happens every time.
>
>Is there a way to view more debugging info? There's no output from either
>mythfrontend or mythbackend.
Re: mythtv freezes when changing channels [ In reply to ]
> If I change the channel more than once, even when using the "O" browse
> mode, it just freezes up and I have to kill it. The first channel
> change goes fine, but the second time is when it freees up. This happens
> every time.
>
> Is there a way to view more debugging info? There's no output from
> either mythfrontend or mythbackend.

I believe the howto has instructions for how to submit a good bug report
using gdb and sending in a backtrace.

One comment though. The 'O' browse mode does not change the channel at
all, it just searches through the database showing channel info. So if
both browse mode and normal channel changing can cause something to freeze
then the problems are possibly unrelated or unrelated to channel changing
at least since browse doesn't actualy change the channel.

Send in a backtrace using the howto instructions and we'll see if someone
can help.

Chris
Re: mythtv freezes when changing channels [ In reply to ]
On Mon, 2003-05-26 at 13:59, Chris Pinkham wrote:


> Send in a backtrace using the howto instructions and we'll see if someone
> can help.


Ok, here's the backtrace. I ran mythtv under gdb, changed the channel a
few times, and when it froze I hit alt+f4 to close myth tv and then gave
the backtrace command to gdb. Here it is, it's pretty long though:

-----------------------------------------------------------------------------
(gdb) thread apply all bt full

Thread 7 (Thread 81926 (LWP 5403)):
#0 0x40ab2c46 in sigsuspend () from /lib/libc.so.6
No symbol table info available.
#1 0x4094b0c9 in __pthread_wait_for_restart_signal ()
from /lib/libpthread.so.0
No symbol table info available.
#2 0x4094c7ee in __pthread_alt_lock () from /lib/libpthread.so.0
No symbol table info available.
#3 0x40949b17 in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#4 0x080c4482 in OSD::Display(unsigned char*) (this=0x83d6fa8,
yuvptr=0x43ffa000
"\026\026\026\026\e\037'=_njqnlrpoqoronrlpqkmmknnlinolnpim
pnpooswwstwuv|y\177\177~}~\177\177|\201~\177\200{vwvusqqqpmkiijdfgfSQjfhhjqlmpnk
lmmronolnponmimjijgifa_^`_ZY^TU[.USRMPPNMMLLMMMOOMKMMJKKIJNNKMLKJIHHIKLIEEEFGIDCC
GCDCFC@ADCGOX^bkop\177\215"...) at osd.cpp:1467
anytodisplay = false
removeList = {<_Vector_base<OSDSet*,std::allocator<OSDSet*> >> =
{<_Vect
or_alloc_base<OSDSet*,std::allocator<OSDSet*>,true>> = {_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0}, <No data fields>}, <No data fields>}
i =
{<iterator<std::random_access_iterator_tag,OSDSet*,int,OSDSet**,OSDS
et*&>> = {<No data fields>}, _M_current = 0xe8}
---Type <return> to continue, or q <return> to quit---
#5 0x080a4906 in NuppelVideoPlayer::OutputVideoLoop() (this=0x41c9f008)
at NuppelVideoPlayer.cpp:1224
laudiotime = 15320
delay = 23226
avsync_delay = -6000
delay_clipping = false
nexttrigger = {tv_sec = 1054058156, tv_usec = 187072}
now = {tv_sec = 1054058154, tv_usec = 998293}
reducejitter = false
frame_time = 33366
frame = {codec = CODEC_YUV, height = 480, width = 480, bpp = -1,
frameNumber = 0,
buf = 0x43ffa000
"\026\026\026\026\e\037'=_njqnlrpoqoronrlpqkmmknnlinolnpimpnp
ooswwstwuv|y\177\177~}~\177\177|\201~\177\200{vwvusqqqpmkiijdfgfSQjfhhjqlmpnklmm
ronolnponmimjijgifa_^`_ZY^TU[.USRMPPNMMLLMMMOOMKMMJKKIJNNKMLKJIHHIKLIEEEFGIDCCGCD
CFC@ADCGOX^bkop\177\215"..., len = 0, timecode = 0, is_field = 0}
pause_rpos = 1
pause_buf = (
unsigned char *) 0x45176008
"\031\026\026\027\031\034&<Wf_babhhfbeggda^kifii
hejknssruwssrwzw|}z}yyzw|\201~\205\206\201~~\177}w}{~}tsvuppkiijkmlgc\\afcLTl`]b
iqdjmidegejhaebdhbec_b_]__cb[TSXZVUVKNWQNOJKMMNOMMMOMMLJHMOHJKIIMNJNMKKJJJKMNKGH
HGCGGDHGEADEB@DDBCKRXYaimw}"...
#6 0x080a513d in NuppelVideoPlayer::kickoffOutputVideoLoop(void*) (
player=0x41c9f008) at NuppelVideoPlayer.cpp:1554
No locals.
#7 0x40948cc0 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8 0x40948dc2 in pthread_start_thread_event () from
/lib/libpthread.so.0
No symbol table info available.

Thread 6 (Thread 65541 (LWP 5402)):
#0 0x40b33aa6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.

Thread 5 (Thread 49156 (LWP 5401)):
#0 0x40b33aa6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.

Thread 4 (Thread 32771 (LWP 5400)):
#0 0x40ab2c46 in sigsuspend () from /lib/libc.so.6
No symbol table info available.
#1 0x4094b0c9 in __pthread_wait_for_restart_signal ()
from /lib/libpthread.so.0
No symbol table info available.
#2 0x4094c7ee in __pthread_alt_lock () from /lib/libpthread.so.0
No symbol table info available.
#3 0x40949b17 in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#4 0x40786ecc in QRecursiveMutexPrivate::lock() ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#5 0x407872d4 in QMutex::lock() () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#6 0x404db114 in QApplication::lock() () from
/usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#7 0x400cfbbd in WriteStringList(QSocket*, QStringList&)
(socket=0x838db20,
list=@0x4259999c) at util.cpp:41
temp = 1113168864
str = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x83cd008,
static shared_null = 0x830ff80}
utf8 = <incomplete type>
size = 55
written = 0
payload = <incomplete type>
#8 0x080e42ce in RemoteEncoder::SendReceiveStringList(QStringList&) (
this=0x838eda0, strlist=@0x4259999c) at remoteencoder.cpp:52
No locals.
#9 0x080e4d09 in RemoteEncoder::GetFreeSpace(long long)
(this=0x838eda0,
totalreadpos=0) at remoteencoder.cpp:146
strlist = {<QValueList<QString>> = {sh = 0x842dbd0}, <No data
fields>}
retval = 5316280320
#10 0x080ebe65 in RingBuffer::GetFreeSpace() (this=0x83a1df0)
at RingBuffer.cpp:1132
No locals.
#11 0x080a57ea in NuppelVideoPlayer::StartPlaying() (this=0x41c9f008)
at NuppelVideoPlayer.cpp:1691
output_audio = 65541
output_video = 81926
pausecheck = 20
#12 0x0808123b in SpawnDecode(void*) (param=0x41c9f008) at
tv_play.cpp:118
nvp = (NuppelVideoPlayer *) 0x41c9f008
#13 0x40948cc0 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#14 0x40948dc2 in pthread_start_thread_event () from
/lib/libpthread.so.0
No symbol table info available.
Thread 3 (Thread 16386 (LWP 5396)):
#0 0x4094dffb in read () from /lib/libpthread.so.0
No symbol table info available.
#1 0x40937384 in __JCR_LIST__ () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#2 0x404ed421 in QEventLoop::processEvents(unsigned, int) ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#3 0x404d96a0 in QApplication::processEvents(int) ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#4 0x404d9667 in QApplication::processEvents() ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#5 0x400ab26a in RemoteFile::openSocket(bool, bool) (this=0x838fa00,
control=false, events=true) at remotefile.cpp:83
qurl = <incomplete type>
host = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x84bfa90,
static shared_null = 0x830ff80}
port = 6543
dir = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x83c66a0,
static shared_null = 0x830ff80}
sock = (struct QSocket *) 0x84dcd78
num = 0
hostname = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x83903d8,
static shared_null = 0x830ff80}
strlist = {<QValueList<QString>> = {sh = 0x84288f0}, <No data
fields>}
#6 0x400ab0f1 in RemoteFile::Start(bool) (this=0x838fa00, events=true)
at remotefile.cpp:62
No locals.
#7 0x400ac469 in RemoteFile::SaveAs(QMemArray<char>&, bool)
(this=0x838fa00,
data=@0x41c9e7ac, events=true) at remotefile.cpp:280
No locals.
#8 0x4009e508 in MythContext::CacheRemotePixmap(QString const&, bool) (
this=0x838e5a0, url=@0x41c9e84c, needevents=true) at
mythcontext.cpp:635
qurl = <incomplete type>
rf = (RemoteFile *) 0x838fa00
data = {<> = {<No data fields>}, <No data fields>}
ret = false
#9 0x080cca21 in OSDTypeImage::LoadImage(QString const&, float, float,
int, int) (this=0x8570450, filename=@0x84cf220, wmult=0.75, hmult=1,
scalew=30,
scaleh=30) at osdtypes.cpp:551
url = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x83c6060,
static shared_null = 0x830ff80}
cached = (QImage *) 0x8
tmpimage = {data = 0x84d9080}
width = 8
height = 1103751268
tmp2 = {data = 0x83c6060}
#10 0x080c1bde in OSD::SetTextByRegexp(QString const&, QMap<QString,
QString>&, int) (this=0x83d6fa8, name=@0x41c9e92c,
regexpMap=@0x41c9e93c, length=3)
at osd.cpp:898
cs = (class OSDTypeImage *) 0x8570450
container = (OSDSet *) 0x8567608
#11 0x080885b4 in TV::UpdateOSD() (this=0x839f368) at tv_play.cpp:1687
regexpMap = {sh = 0x84f3838}
#12 0x080877c1 in TV::ChangeChannel(int) (this=0x839f368, direction=0)
at tv_play.cpp:1478
muted = false
#13 0x080852dd in TV::ProcessKeypress(int) (this=0x839f368,
keypressed=338)
at tv_play.cpp:1015
was_doing_ff_rew = false
#14 0x080842a5 in TV::RunTV() (this=0x839f368) at tv_play.cpp:736
keypressed = 338
pausecheck = 15666
#15 0x0808415b in TV::EventThread(void*) (param=0x839f368) at
tv_play.cpp:700
thetv = (class TV *) 0x839f368
#16 0x40948cc0 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#17 0x40948dc2 in pthread_start_thread_event () from
/lib/libpthread.so.0
No symbol table info available.

Thread 2 (Thread 32769 (LWP 5395)):
#0 0x40b58a45 in poll () from /lib/libc.so.6
No symbol table info available.
#1 0x409488d0 in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40948b1a in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 1 (Thread 16384 (LWP 5392)):
#0 0x40ab2c46 in sigsuspend () from /lib/libc.so.6
No symbol table info available.
#1 0x4094b0c9 in __pthread_wait_for_restart_signal ()
from /lib/libpthread.so.0
No symbol table info available.
#2 0x4094c7ee in __pthread_alt_lock () from /lib/libpthread.so.0
No symbol table info available.
#3 0x40949b17 in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#4 0x40786ecc in QRecursiveMutexPrivate::lock() ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#5 0x407872d4 in QMutex::lock() () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#6 0x40491509 in QEventLoop::processEvents(unsigned) ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#7 0x404ed421 in QEventLoop::processEvents(unsigned, int) ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#8 0x404d96a0 in QApplication::processEvents(int) ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#9 0x404d9667 in QApplication::processEvents() ()
from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#10 0x080650ea in main (argc=1, argv=0xbffff734) at main.cpp:72
a = <incomplete type>
themename = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x838e670,
static shared_null = 0x830ff80}
themedir = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x83961a8,
static shared_null = 0x830ff80}
db = (struct QSqlDatabase *) 0x8396208
server = {static null = {
static null = <same as static member of an already seen type>,
d = 0x830ff80, static shared_null = 0x830ff80}, d = 0x839d298,
static shared_null = 0x830ff80}
port = 6543
tv = (class TV *) 0x839f368
#11 0x40a9f7a6 in __libc_start_main () from /lib/libc.so.6
No symbol table info available.
#0 0x40ab2c46 in sigsuspend () from /lib/libc.so.6
Re: mythtv freezes when changing channels [ In reply to ]
On Tuesday 27 May 2003 02:26 pm, Ben Davis wrote:
> On Mon, 2003-05-26 at 13:59, Chris Pinkham wrote:
> > Send in a backtrace using the howto instructions and we'll see if someone
> > can help.
>
> Ok, here's the backtrace. I ran mythtv under gdb, changed the channel a
> few times, and when it froze I hit alt+f4 to close myth tv and then gave
> the backtrace command to gdb. Here it is, it's pretty long though:

Can you try to reproduce this with current CVS?

Isaac
Re: mythtv freezes when changing channels [ In reply to ]
On Tue, 2003-05-27 at 16:13, Isaac Richards wrote:


>
> Can you try to reproduce this with current CVS?
> Isaac


Well, I actually just downloaded the CVS yesterday, has it changed
since then?
Re: mythtv freezes when changing channels [ In reply to ]
On Tuesday 27 May 2003 06:19 pm, Ben Davis wrote:
> On Tue, 2003-05-27 at 16:13, Isaac Richards wrote:
> > Can you try to reproduce this with current CVS?
> > Isaac
>
> Well, I actually just downloaded the CVS yesterday, has it changed
> since then?

If I say 'current CVS', I mean, well, 'current'. Not yesterday, not 2 days
old, not a week old. Since you're using CVS, you should be on the commits
list and should have seen the commit message where I even mentioned the bug
you reported and your name.

Isaac
Re: mythtv freezes when changing channels [ In reply to ]
Ben Davis wrote:

> On Tue, 2003-05-27 at 16:13, Isaac Richards wrote:
>
>>/
>>Can you try to reproduce this with current CVS?
>>Isaac/
>>
>
> Well, I actually just downloaded the CVS yesterday, has it changed
> since then?

It should have; Isaac usually writes this type of message only a few
minutes, at most, after he uploaded changes to CVS, that try to fix a bug.

Pete
Re: mythtv freezes when changing channels [ In reply to ]
On Tue, 2003-05-27 at 19:22, Isaac Richards wrote:


> If I say 'current CVS', I mean, well, 'current'. Not yesterday, not 2 days
> old, not a week old. Since you're using CVS, you should be on the commits
> list and should have seen the commit message where I even mentioned the bug
> you reported and your name.
>
> Isaac

Heh.. guess I should get on the commits list ;)... my bad. I'm just
really impressed you were able to fix a bug the same day I posted that..
Kudos!

I'll test it out with the new CVS and let you know if anything else goes
wrong...

Thanks!
Re: mythtv freezes when changing channels [ In reply to ]
On Tue, 2003-05-27 at 16:13, Isaac Richards wrote:

> Can you try to reproduce this with current CVS?


Well, I got the latest CVS and I still had the same problem. The wierd
thing is, it doesn't seem to happen when I'm logged in as root. If I'm
root, I can't reproduce the problem, but when I run it as myself it
locks up when I start changing channels or browsing.

I've attatched the backtrace as a text file.

~Ben
Re: mythtv freezes when changing channels [ In reply to ]
On Wednesday 28 May 2003 04:26 pm, Ben Davis wrote:
> On Tue, 2003-05-27 at 16:13, Isaac Richards wrote:
> > Can you try to reproduce this with current CVS?
>
> Well, I got the latest CVS and I still had the same problem. The wierd
> thing is, it doesn't seem to happen when I'm logged in as root. If I'm
> root, I can't reproduce the problem, but when I run it as myself it
> locks up when I start changing channels or browsing.

Could you edit libs/libmyth/remotefile.cpp, line 280, and change it to:
Start(events);
instead of
Start(true);

and see if that works (after a recompile, yadda yadda yadda)?

Isaac
Re: mythtv freezes when changing channels [ In reply to ]
On Thu, 2003-05-29 at 21:45, Isaac Richards wrote:


>
> Could you edit libs/libmyth/remotefile.cpp, line 280, and change it to:
> Start(events);
> instead of
> Start(true);
>
> and see if that works (after a recompile, yadda yadda yadda)?
>


That seems to have done the trick this time, although I'm not 100% sure,
as it froze up at random times last time, however I've been using it for
afew hours now and it looks to be ok..

Thanks for the help, You guys doing a fantastic job on this project!!