[mythtv-users] LiveTV frontend erroring out

Adrian Saul sgtbundy at gmail.com
Tue Jul 31 12:02:23 UTC 2012


Hi,
   I have been a long term MythTV user (6 and a half years going by my 
stats) and dealt with a lot of changes, quirks, workarounds and many a 
night of cursing broken upgrades (mostly more Ubuntu than MythTV).  For 
the most part it works well, the kids use it, my wife knows her way 
around it and for my part I enjoy having an entertainment setup that I 
can use as I wish.

  My setup is a little unique, but that is because I am Solaris admin by 
trade and am more comfortable this way.  I have one backend/frontend 
(pvr) and a second frontend (mythclient) for another room.   Both pvr 
and mythclient are diskless, running off NFS storage from a ZFS backed 
Solaris server (I use ZFS snapshots during upgrades for rollbacks). 
Both are running Ubuntu 11.04 with MythTV 2:0.25.1+fixes.20120714. 
Originally I build mythclient by cloning the pvr image and modifying it 
to change identity, but since then it as been upgraded in parallel with 
the backend.    The database runs on the Solaris box (safety in upgrades 
again).  The gigabit network and ZFS storage performance is fine - I can 
benchmark read speeds at wirespeed of 100MB/s and writes seem fine as 
well.  I see no performance issues on the Solaris box and tuned the DB 
using some performance scripts and tips I can find. Generally the DB 
seems fine as well.   The recordings are on NFS obviously, and mounted 
locally to both machines in the same location.  Storage groups are 
configured to point to these local mount points.  Both frontends are 
configured to not stream from the backend.

The tuners are all in "pvr" - one dual PCI-e Hauppage WinTV HVR-2200, 
and two Dvico Fusion Plus single tuners.  All tuners are configured as 
dual virtual tuners to handle peak recording times (I think the record 
is 6 recording at once).  Some previous tuners have been problematic 
with reception and stability, but generally these seem fine now.  As 
best I can tell there is no one tuner related to these issues.

   For a while now we have had issues with watching live recordings be 
that "Watch TV" or watching a recording in progress  Probably more so 
now because of a higher amount of HD content that seems more susceptible 
to issues (I guess due to file size).  Generally completed recordings 
are fine, but anything in progress has a number of the following issues:

1.  If watching an in progress recording on one frontend, starting (and 
sometimes exiting) playback on the other will usually cause the live one 
to error out with something about an "unrecoverable error".  Resuming 
the playback generally works until someone does another action that 
upsets it.
2.  Playback of HD files (especially longer ones - my wife is a F1 fan) 
seems more susceptible to issues - fast forwarding or skipping can cause 
it to error out.
3. Getting too close to the end of the recording while it is live causes 
it to error out - sometimes just being within the last 30 seconds is enough.
4. If the recording ends while you are watching it, it exits out.
5. Occasionally if another recording starts, the one you are watching 
exits out.
6. Disabling commercial flagging generally makes things more stable, but 
is not always a fix.

This is obviously frustrating, because when it exits if you were not 
quick enough or had recently set a bookmark, you need to make your way 
through the recording again to where you were.  As per item 2, that can 
mean risking it erroring out again.

As best I can tell in the logs, the culprit for all the issues seems to 
be related to this as it occurs with each crash:

Jul 29 23:26:48 pvr mythfrontend[32368]: E CoreContext 
mythsocket.cpp:534 (readStringList) MythSocket(7fcf8941eee0:76): 
readStringList: Error, timed out after 7000 ms.
Jul 29 23:26:48 pvr mythfrontend[32368]: E CoreContext 
remoteencoder.cpp:99 (SendReceiveStringList) 
RemoteEncoder::SendReceiveStringList(): No response.
Jul 29 23:26:48 pvr mythfrontend[32368]: E CoreContext 
remoteencoder.cpp:205 (GetFramesWritten) RemoteEncoder(15): 
GetFramesWritten() -- network error
Jul 29 23:26:48 pvr mythfrontend[32368]: E CoreContext 
mythplayer.cpp:2816 (EventLoop) Player(1l): Unknown recorder error, 
exiting decoder
Jul 29 23:26:48 pvr mythfrontend[32368]: I CoreContext tv_play.cpp:2121 
(HandleStateChange) TV: Attempting to change from WatchingRecording to None

The backend seems to see no issue, just that the sockets went away:

Jul 29 23:27:03 pvr mythbackend[12372]: W ProcessRequest 
mainserver.cpp:5801 (connectionClosed) MainServer: Unknown socket 
closing MythSocket(0x7fcccc89f0b0)
Jul 29 23:27:03 pvr mythbackend[12372]: W ProcessRequest 
mainserver.cpp:5801 (connectionClosed) MainServer: Unknown socket 
closing MythSocket(0x7fccac675330)
Jul 29 23:27:03 pvr mythbackend[12372]: E ProcessRequest 
mythsocket.cpp:358 (writeStringList) MythSocket(7fcccc89f0b0:-1): 
writeStringList: Error, socket went unconnected.#012#011#  011#011We 
wrote 0 of 14 bytes with 1 errors#012#011#011#011starts with: 6       165003
Jul 29 23:27:03 pvr mythbackend[12372]: E ProcessRequest 
mythsocket.cpp:358 (writeStringList) MythSocket(7fccac675330:-1): 
writeStringList: Error, socket went unconnected.#012#011#  011#011We 
wrote 0 of 10 bytes with 1 errors#012#011#011#011starts with: 2       ok

I also get the following messages regularly - not sure if they are 
related but the keyframes thing seems in tune with GetFramesWritten():

Jul 29 23:26:31 pvr mythbackend[12372]: I ProcessRequest 
recorderbase.cpp:386 (GetKeyframePositions) 
RecBase(15:/dev/dvb/adapter2/frontend0): 
GetKeyframePositions(148189,9223372036  854775807,#1334) out of 13684

 From digging into what GetFramesWritten() does I am not sure why that 
would take more than 7 seconds to return, but given the nature of the 
errors to be caused by other backend activity I suspect there is some 
sort of locking or socketi ssue  going on in the backend causing this. 
And in this case the networking being through the local loopback I can't 
see how it could be a network problem.

What I am looking for is where I can start digging into this further and 
what could possibly be causing this?  Happy to supply more logs or 
debugging if someone can steer me in the right direction.

Cheers,
   Adrian



More information about the mythtv-users mailing list