[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