[mythtv-users] today's mythtv update for v31 failed

Mike Perkins mikep at randomtraveller.org.uk
Thu Feb 3 18:21:21 UTC 2022


On 03/02/2022 17:05, James Abernathy wrote:
> On Thu, Feb 3, 2022 at 11:56 AM Mike Perkins <mikep at randomtraveller.org.uk>
> wrote:
> 
>> On 03/02/2022 16:47, James Abernathy wrote:
>>> I think this failure is mine alone but it seems to fail because of an
>>> override.conf file I have in the mythtv-backend.service.  It worked until
>>> this update this morning.
>>>
>>> I don't see this reason for the error:
>>> jim at kubuntu-closet:/etc/systemd/system/mythtv-backend.service.d$ sudo
>>> systemctl cat mythtv-backend.service
>>> # /lib/systemd/system/mythtv-backend.service
>>> [Unit]
>>> Description=MythTV Backend
>>> Documentation=https://www.mythtv.org/wiki/Mythbackend
>>> After=mysql.service network.target
>>>
>>> [Service]
>>> User=mythtv
>>> EnvironmentFile=-/etc/mythtv/additional.args
>>> ExecStart=/usr/bin/mythbackend --quiet --syslog local7 $ADDITIONAL_ARGS
>>> StartLimitBurst=10
>>> StartLimitInterval=10m
>>> Restart=on-failure
>>> RestartSec=1
>>>
>>> [Install]
>>> WantedBy=multi-user.target
>>>
>>> # /etc/systemd/system/mythtv-backend.service.d/override.conf
>>> [Service]
>>> ExecStartPre=/usr/local/bin/hdhomerun_check.py
>>>
>>> I think the error with the upgrade is during the post processing. when it
>>> tried to restart mythtv-backend.service. Here's the output from the
>> restart
>>> failure.
>>>
>>> jim at kubuntu-closet:/etc/systemd/system/mythtv-backend.service.d$ sudo
>>> systemctl status mythtv-backend
>>> × mythtv-backend.service - MythTV Backend
>>>        Loaded: loaded (/lib/systemd/system/mythtv-backend.service;
>> enabled;
>>> vendor preset: enabled)
>>>       Drop-In: /etc/systemd/system/mythtv-backend.service.d
>>>                └─override.conf
>>>        Active: failed (Result: exit-code) since Thu 2022-02-03 11:39:01
>> EST;
>>> 14s ago
>>>          Docs: https://www.mythtv.org/wiki/Mythbackend
>>>       Process: 3711 ExecStartPre=/usr/local/bin/hdhomerun_check.py
>>> (code=exited, status=1/FAILURE)
>>>           CPU: 86ms
>>>
>>> Feb 03 11:39:01 kubuntu-closet systemd[1]: mythtv-backend.service:
>>> Scheduled restart job, restart counter is at 10.
>>> Feb 03 11:39:01 kubuntu-closet systemd[1]: Stopped MythTV Backend.
>>> Feb 03 11:39:01 kubuntu-closet systemd[1]: mythtv-backend.service: Start
>>> request repeated too quickly.
>>> Feb 03 11:39:01 kubuntu-closet systemd[1]: mythtv-backend.service: Failed
>>> with result 'exit-code'.
>>> Feb 03 11:39:01 kubuntu-closet systemd[1]: Failed to start MythTV
>> Backend.
>>>
>>> I'll temporarily remove the override for now.
>>>
>>> Any ideas?
>>>
>> It's the hdhomerun python code that is failing. Has the version changed?
>>
>> --
>>
>> Mike Perkins
>>
> 
> I have not changed the code. I got it from someone on MythTV Forum and it
> seemed simpler than wait-for-pingable method of delaying mythtv-backend
> startup.
> Here's the code and it works normally at the command line.
> 
>   cat /usr/local/bin/hdhomerun_check.py
> #!/usr/bin/python3
> 
> ''' See if the HD Homerun box is accessable and running '''
> 
> import subprocess
> import sys
> import logging
> from time import sleep
> from datetime import datetime
> 
> ATTEMPTS = 21
> DELAY = 2
> 
> 
> def get_elapsed_time(start):
>      ''' Calculate the time spent waiting for the HDHR to come up '''
> 
>      delta = datetime.utcnow() - start
>      rounded_delta = '{:.3f}'.format(delta.seconds +
>                                      (delta.microseconds / 1000000))
>      return rounded_delta
> 
> 
> def main():
>      ''' Try to discover the HDHR '''
> 
>      attempt = 0  # Shut up pylint.
>      command = 'hdhomerun_config discover'
>      logger = logging.getLogger(command)
> 
>      logging.basicConfig(filename='/var/log/mythtv/hdhr_discovery.log',
>                          filemode='a',
>                          format='%(asctime)s %(levelname)s\t%(message)s',
>                          datefmt='%Y-%m-%d %H:%M:%S',
>                          level=logging.INFO)
> 
>      logger.info('Starting HD Homerun discovery')
> 
>      start = datetime.utcnow()
> 
>      for attempt in range(1, ATTEMPTS):
>          try:
>              sproc = subprocess.Popen(command, stdout=subprocess.PIPE,
>                                       shell=True)
>              sproc.communicate()
> 
>          except KeyboardInterrupt:
>              sys.exit(2)
> 
>          if sproc.returncode != 0:
>              logger.warning('%s failed, return code = %d.', command,
>                             sproc.returncode)
>              sleep(DELAY)
>          else:
>              logger.info('Found HD Homerun. Seconds=%s, attempts=%d.',
>                          get_elapsed_time(start), attempt)
>              sys.exit(0)
> 
>      logger.error('Couldn\'t find HD Homerun. Seconds=%s, attempts=%d.',
>                   get_elapsed_time(start), attempt)
> 
> 
> if __name__ == '__main__':
>      main()
> 
> # vim: set expandtab tabstop=4 shiftwidth=4 smartindent colorcolumn=80:
> 
That wasn't what I meant. I wondered if your *version* of python had changed recently, as the result 
of an update.

However, if you can run it by hand then that would likely be a no.

-- 

Mike Perkins



More information about the mythtv-users mailing list