Opened 5 years ago

Last modified 4 years ago

#12269 new Bug Report - General

Channel change on watching live tv starts playing old recording

Reported by: mythtv@… Owned by:
Priority: minor Milestone: unknown
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

  1. Start watching live tv
  2. Let the different programs roll over
  3. Try and change channel
  4. More often than not, the channel does change on the backend and gets recorded, the frontend however rewinds the stream back to the beginning of that session.

This has been happening on head since around April.

Attachments (2)

mythbackend.log.bz2 (1.9 MB) - added by mythtv@… 5 years ago.
mythbackend log file
mythfrontend.log.bz2 (1.8 MB) - added by mythtv@… 5 years ago.
mythfrontend log file

Change History (8)

comment:1 Changed 5 years ago by Kenni Lund [kenni a kelu dot dk]

Version: UnspecifiedMaster Head

Please attach full logs from the backend and the frontend when the issue occurs.

I can confirm from a friend of mine that this bug also affects latest 0.27-fixes and apparently has done it for at least a couple of months. I'll see if I can get him to provide logs from 0.27-fixes.

Changed 5 years ago by mythtv@…

Attachment: mythbackend.log.bz2 added

mythbackend log file

Changed 5 years ago by mythtv@…

Attachment: mythfrontend.log.bz2 added

mythfrontend log file

comment:2 Changed 5 years ago by mythtv@…

I've uploaded the log files.

Files started from 13:43 when both frontend & backend were restarted.

There was a live program change at 13:45 which I let run for a few seconds.

I then attempted to change channel.

The system then began playing the stream from the beginning off the session, ie 13:43.

When I let it continue, it finished playing the previous media and began playing what it should have from the new channel.

comment:3 Changed 5 years ago by bib_aab@…

Is this ever going to get fixed. It's still happening 7 months later and seems to afdfect everyone.

comment:4 Changed 5 years ago by stuartm

If it affected everyone it would probably have been fixed already, it doesn't, not even close.

If developers are unable to reproduce the problem it's very difficult to come up with a fix.

comment:5 Changed 5 years ago by Jonatan Lindblad

After a few hours of looking at the logs and the code I think it looks like a race between the LIVETV_CHAIN UPDATE event sent from the backend when a recording is finished and the frontend reading directly from the database.

Looking at the frontend log there are two LIVETV_CHAIN UPDATE events received at 13:45:32.402590 and 13:45:32.543229 with 3 and 4 entries in the chain respectively.

Shortly after at 13:45:32.640686 the live TV chain is read from the database where 4 entries are found.

At 13:45:33.962783 the LIVETV_CHAIN UPDATE event with 3 entries is now processed and the fourth entry is removed. In LiveTVChain::ReloadAll?() m_curpos has now been reset to 0, probably because the entry matching m_cur_chanid/m_cur_startts can no longer be found in m_chain.

At 13:45:33.976393 RingBuffer? calls LiveTVChain::SwitchToNext? which switches back to the second entry in the chain, i.e. m_curpos = 1.

comment:6 Changed 4 years ago by bib_aab@…

And still not fixed. It is better on fast systems, but if you have a less powerful one, the problem is more than annoying.

Note: See TracTickets for help on using tickets.