Opened 16 years ago
Closed 15 years ago
#4734 closed defect (duplicate)
MythTV gets stuck tuning going from IVTV -> DVB
Reported by: | Owned by: | Isaac Richards | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
MythTV gets stuck when changing from an IVTV channel to a DVB channel. The frontend times out on socket communications and will not work until the backend is kicked.
Backtrace, frontend and backend logs attached. The backtrace log has a couple backtraces in it as well as some stepping.
Attachments (5)
Change History (12)
comment:1 Changed 16 years ago by
I believe thread 8 is the culprit here. It looks to be spinning on ThreadedFileWriter::Write() on "while (count > BufFree?())"
Could tearing down the RingBuffer? cause a scenario where count will always be > BufFree?()?
- Mark.
comment:2 Changed 16 years ago by
Hi Mark,
I can't reproduce the problem and I haven't analyzed the actual cause of this too closely but it doesn't seem inconceivable that you could get stuck in that loop.
Patch attached to safeguard against that.
Changed 16 years ago by
Attachment: | TFW_chk_no_writes.diff added |
---|
comment:3 Changed 16 years ago by
It seems there's a few things going on here. Attached a log of several backtraces. I'll analyze it tomorrow when I'm more awake.
- Mark.
comment:5 Changed 15 years ago by
Yes, I believe it's due to reclist_lock getting locked in the scheduler and never getting released. In trying to narrow it down, I added a bunch of debug printf's, but they changing the timing of events ever so slightly as to nearly prevent the issue altogether.
- Mark.
comment:6 Changed 15 years ago by
From the bt of thread 8
RingBuffer::Write (this=0xa715b058, buf=0xa205e008, count=2211632) at RingBuffer?.cpp:1182
ThreadedFileWriter::TFW_DEF_BUF_SIZE = 2*1024*1024 => 2097152
2211632 > 2097152 so the (count > BufFree?()) condition will never clear.
comment:7 Changed 15 years ago by
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Backend log