[mythtv-commits] Ticket #13407: HDHomeRun ERROR: lock no longer held

MythTV noreply at mythtv.org
Fri Feb 15 16:20:36 UTC 2019


#13407: HDHomeRun ERROR: lock no longer held
-------------------------+-------------------------------------------------
     Reporter:  Klaas    |      Owner:  (none)
  de Waal                |
         Type:  Patch -  |     Status:  new
  Bug Fix                |
     Priority:  minor    |  Milestone:  needs_triage
    Component:  MythTV   |    Version:  Master Head
  - DVB                  |   Keywords:  HDHomeRun DVB zero-byte recording
     Severity:  medium   |  EIT lock
Ticket locked:  0        |
-------------------------+-------------------------------------------------
 Environment:
 - Cable signal Dutch Ziggo DVB-C
 - One system with Fedora 29 on i7-7700 running MythTV master
 - One system with Fedora 29 on i5-650 running MythTV v30.
 - Each system has its own HDHomeRun HDHR3-4DC tuner plus one or more KNC-
 One PCIbus card tuners.

 The problem described here is present on both systems.

 The following error messages appear in the mythbackend log:

 {{{
 2019-02-12 14:30:10.424948 I  HDHRSH[1](1410F45C): Tuning channel
 a8qam256-6900:706750000 (was a8qam256-6900:578750000)
 2019-02-12 14:30:10.425339 E  HDHRSH[1](1410F45C): DeviceSet(channel
 a8qam256-6900:706750000): ERROR: lock no longer held

 }}}

 This error appears when the HDHomeRun channel is used for active EIT
 scanning, selected with option "Use DVB card for active EIT scan" in
 mythtv-setup. The error message typically appears after a few hours of
 succesful active EIT scanning.

 The error indicates a failure to get EIT/EPG data; also the first
 recording after a failed active EIT scan fails.
 After a failed recording the next recording or active EIT scan is always
 OK.
 Then, after a while, the error appears again.

 The active EIT scanning is only done on the first HDHomeRun channel.
 On the other HDHomeRun channels, without active EIT scanning, this error
 does not appear and all recordings are OK.

 An obvious solution which does not require any code change is to disable
 active EIT scanning on the HDHomeRun.
 This is however only acceptable if the system has also other, correctly
 working, tuners which can be used for active EIT scanning.\\

 Examining the mythbackend log files shows that for the active EIT scanning
 there is an "Opening HDHR channel" message but that
 the "Closing HDHR channel" message is missing. This is caused by the "if"
 condition in TVRec::CloseChannel() :

 {{{
 void TVRec::CloseChannel(void)
 {
     if (channel &&
         ((genOpt.inputtype == "DVB" && dvbOpt.dvb_on_demand) ||
          genOpt.inputtype == "FREEBOX" || genOpt.inputtype == "VBOX" ||
          CardUtil::IsV4L(genOpt.inputtype)))
     {
         channel->Close();
     }
 }

 }}}

 The HDHomeRun tuners have type HDHOMERUN and for this tuner type the
 channel is not closed.\\
 The solution is to add the type HDHOMERUN to the "if" condition, as shown
 here:

 {{{
 void TVRec::CloseChannel(void)
 {
     if (channel &&
         ((genOpt.inputtype == "DVB" && dvbOpt.dvb_on_demand) ||
          genOpt.inputtype == "FREEBOX" || genOpt.inputtype == "VBOX" ||
          genOpt.inputtype == "HDHOMERUN" ||
 // KdW fix this line added
          CardUtil::IsV4L(genOpt.inputtype)))
     {
         channel->Close();
     }
 }

 }}}

 The attached patch has been tested on both systems.

 Note: on both systems the patches of ticket #13371 are applied.

-- 
Ticket URL: <https://code.mythtv.org/trac/ticket/13407>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list