Opened 14 years ago
Closed 14 years ago
Last modified 14 years ago
#9574 closed Bug Report (Fixed)
Backend HD-PVR robustness
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | MythTV - Recording | Version: | 0.24-fixes |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Occasionally something happens that causes a zero length recording with the HD-PVR. When this happens I notice that the blue recording light is on. I am unsure if this is because it is 'stuck on' from a previous recording or related to the failed recording.
My question is why can't Mythtv gracefully recover from this and in particular switch to using another available tuner?
I have no idea why in this particular case SetInputAndFormat? is hitting the NTSC/ATSC case for an HD-PVR, especially since it has just properly finished recording something the previous hour. However, if there are these failures returned from SetInputAndFormat?, why doesn't MythTV try to use another tuner. Despite printing all these messages for the full hour, MythTV merrily transitions to the Recorded state as if everything was okay.
When this condition triggers, the log shows:
2011-02-07 11:00:12.308 Channel(/dev/video-hdpvr1) Error: SetInputAndFormat(6, NTSC) while setting input (v4l v2) eno: Connection timed out (110) 2011-02-07 11:00:22.322 Channel(/dev/video-hdpvr1) Error: SetInputAndFormat(6, NTSC) while setting format (v4l v2) eno: Connection timed out (110) 2011-02-07 11:00:32.322 Channel(/dev/video-hdpvr1) Error: SetInputAndFormat(6, ATSC) while setting input (v4l v2) eno: Connection timed out (110) 2011-02-07 11:00:42.322 Channel(/dev/video-hdpvr1) Error: SetInputAndFormat(6, ATSC) while setting format (v4l v2) eno: Connection timed out (110) 2011-02-07 11:00:42.322 Channel(/dev/video-hdpvr1): SetInputAndFormat() failed 2011-02-07 11:00:42.322 TVRec(6): Starting Signal Monitor 2011-02-07 11:00:42.322 TVRec(6): SetupSignalMonitor(1, 0) 2011-02-07 11:00:42.322 AnalogSM(/dev/video-hdpvr1): card 'Hauppauge HD PVR' driver 'hdpvr' version '512' 2011-02-07 11:00:42.322 TVRec(6): Signal monitor successfully created 2011-02-07 11:00:42.322 AnalogSM(/dev/video-hdpvr1): hd-pvr start encoding 2011-02-07 11:00:42.322 TVRec(6): SetFlags(SignalMonitorRunning,) -> RunMainLoop,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:00:42.322 TVRec(6): ClearFlags(WaitingForSignal,) -> RunMainLoop,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:00:42.323 TVRec(6): SetFlags(WaitingForSignal,) -> RunMainLoop,WaitingForSignal,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:00:42.323 TVRec(6): ClearFlags(NeedToStartRecorder,) -> RunMainLoop,WaitingForSignal,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:00:42.323 TVRec(6): SetFlags(NeedToStartRecorder,) -> RunMainLoop,WaitingForSignal,NeedToStartRecorder,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:00:42.329 AutoExpire: CalcParams(): Max required Free Space: 3.0 GB w/freq: 15 min 2011-02-07 11:00:42.330 Started recording: "Dog the Bounty Hunter":"No Luv Still": channel 2223 on cardid 6, sourceid 2 2011-02-07 11:00:43.573 AnalogSM(/dev/video-hdpvr1), Error: Start encoding failed eno: Resource temporarily unavailable (11) ( snip 26 minutes of repeats ...) 011-02-07 11:27:03.771 AnalogSM(/dev/video-hdpvr1): hd-pvr start encoding 2011-02-07 11:27:03.771 AnalogSM(/dev/video-hdpvr1), Error: Start encoding failed eno: No such device (19) 2011-02-07 11:27:03.781 ProgramInfo(2223_20110207110000.mpg), Error: GetPlaybackURL: '2223_20110207110000.mpg' should be local, but it can not be found. 2011-02-07 11:27:03.781 TVRec(6): SetFlags(KillRec,) -> RunMainLoop,KillRec,WaitingForSignal,NeedToStartRecorder,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:27:03.781 TVRec(6): Changing from RecordingOnly to None 2011-02-07 11:27:03.782 TVRec(6): ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,KillRec,WaitingForSignal,NeedToStartRecorder,SignalMonitorRunning,RingBufferReady, 2011-02-07 11:27:03.782 TVRec(6): HandleTuning Request: Program(no) channel() input() flags(CloseRec,KillRec,KillRingBuffer,) 2011-02-07 11:27:03.782 TVRec(6): TeardownSignalMonitor() -- begin 2011-02-07 11:27:03.822 TVRec(6): TeardownSignalMonitor() -- end 2011-02-07 11:27:03.822 TVRec(6): ClearFlags(SignalMonitorRunning,) -> RunMainLoop,KillRec,WaitingForSignal,NeedToStartRecorder,RingBufferReady, 2011-02-07 11:27:03.822 TVRec(6): ClearFlags(WaitingForSignal,) -> RunMainLoop,KillRec,NeedToStartRecorder,RingBufferReady, 2011-02-07 11:27:03.823 TVRec(6): FinishedRecording(Dog the Bounty Hunter) in recgroup: Default 2011-02-07 11:27:03.824 Finished recording Dog the Bounty Hunter "No Luv Still": channel 2223 2011-02-07 11:27:03.824 TVRec(6): ClearFlags(PENDINGACTIONS,) -> RunMainLoop,KillRec,RingBufferReady, 2011-02-07 11:27:03.824 TVRec(6): ClearFlags(CancelNextRecording,KillRec,) -> RunMainLoop,RingBufferReady, 2011-02-07 11:27:03.825 Updating status for "Dog the Bounty Hunter":"No Luv Still" on cardid 6 (Tuning => Recorded) 2011-02-07 11:27:03.834 Reschedule requested for id 0.
Change History (2)
comment:1 Changed 14 years ago by
Resolution: | → Fixed |
---|---|
Status: | new → closed |
comment:2 Changed 14 years ago by
In my experience, the hdpvr needs manual intervention, such as power cycling, when it gets into this state. From a scheduling robustness point of view, what we need in a case like this is for the recorder to tell the scheduler that the recorder should be taken off-line and some way to inform the user to take further action.
Closing as essentially a feature request without patch (though David Engel has recently substantially improved how we handle failed recordings in master, identifying failures better and rescheduling them for later, which at least improves the situation). For what remains, however, the HD-PVR driver/hardware is what really needs attention.
It's a coin flip between "fixed" (because the status of failed recordings is improved) and "wontfix" (because we don't work on the HD-PVR driver).