[mythtv-users] today's mythtv update for v31 failed
Bill Meek
keemllib at gmail.com
Thu Feb 3 17:40:47 UTC 2022
On 2/3/22 11:05, James Abernathy wrote:
>
>
> On Thu, Feb 3, 2022 at 11:56 AM Mike Perkins <mikep at randomtraveller.org.uk <mailto: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 <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 <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 <http://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 <http://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:
>
> Jim A
See what's in /var/log/mythtv/hdhr_discovery.log
Be sure the above is writable by user mythtv. My own user is a
member of group mythtv and the file looks like this:
-rw-rw-r-- 1 mythtv mythtv 5735 Feb 3 11:28 /var/log/mythtv/hdhr_discovery.log
If that doesn't help, run /usr/local/bin/hdhomerun_check.py from
the command line.
--
Bill
More information about the mythtv-users
mailing list