[mythtv-users] HELP: HD died will need to delete all recordings

Tom Dexter digitalaudiorock at gmail.com
Sat Oct 27 13:38:39 UTC 2018


On 10/27/18, Stephen Worthington <stephen_agent at jsw.gen.nz> wrote:
> On Fri, 26 Oct 2018 13:10:39 -0400, you wrote:
>
>>On 10/26/18, Tom Dexter <digitalaudiorock at gmail.com> wrote:
>>> On 10/23/18, Michael T. Dean <mtdean at thirdcontact.com> wrote:
>>>> find_orphans.py automatically deletes and _allows_ re-record, but you
>>>> are correct that it will not create new rules to record the shows that
>>>> are deleted (nor will any other mechanism for deletion). Any existing
>>>> rules the cover the shows that get deleted will result in re-recording
>>>> of the episodes.  However rules that no longer exist (i.e. "this
>>>> showing" or "find and record once" or ... rules) will need to be
>>>> created
>>>> again.  Generally, though, those one-off rules tend to be for
>>>> "opportunistic" recording of something less important, so probably
>>>> aren't too much of a concern.
>>>>
>>>> Mike
>>>
>>> Wow...totally confused. How exactly should I be getting that
>>> find_orphans.py script? I see it's not part of the mythtv distribution
>>> itself, and that link above doesn't have any sort of raw download. I
>>> attempted to copy and paste it into vi from that page (which really
>>> rubbed me the wrong way), which looked ok (and appeared to have the
>>> proper space indenting) but it fails miserably.
>>>
>>> Run as root I get this:
>>>
>>> ./find_orphans.py
>>> Traceback (most recent call last):
>>>   File "./find_orphans.py", line 221, in <module>
>>>     DB = MythDB()
>>>   File "/usr/lib/python2.7/site-packages/MythTV/database.py", line
>>> 1264, in __init__
>>>     for tmpconfig in dbconfig.test(self.log):
>>>   File "/usr/lib/python2.7/site-packages/MythTV/database.py", line 938,
>>> in
>>> test
>>>     for conn in XMLConnection.fromUPNP(5.0):
>>>   File "/usr/lib/python2.7/site-packages/MythTV/connections.py", line
>>> 607, in fromUPNP
>>>     ip, port = reLOC.match(res['location']).group(1,2)
>>> AttributeError: 'NoneType' object has no attribute 'group'
>>>
>>> If I attempt that as a non-root user it segfaults. Any suggestions are
>>> welcome.
>>>
>>> I was actually able to recover most of the recordings we care about
>>> and I wanted to use this to clean up the rest.
>>>
>>> Tom
>>>
>>
>>Given how little I actually had to do here I just did this manually in
>>mythweb...but I'd still love to know what I was doing wrong there if I
>>ever need this.
>>
>>Thanks!
>>Tom
>
> In Python the indenting matters, so you may have had a problem with
> that.  It is difficult to tell.  And for Python it is also best to use
> UTF-8 (no signature) as the character set for storing files now.
> Python code can have UTF-8 characters in it and that can be important.
> I have put a copy of my working version on my web server:
>
> http://www.jsw.gen.nz/mythtv/find_orphans.py
>
> You might like to download it and check it against your vi version.  I
> checked it against the official version today and it is identical,
> according to my diff program.  And it works for me.

Thanks for that. Interestingly they were the same. Yea, for some
reason I have some very odd breakage happening there, and it behaves
differently running as root vs a non-root user. This is Gentoo running
Python 2.7.15.

Running it with python -v here's what I see failing when run as root:

# /usr/lib/python2.7/site-packages/MythTV/methodheap.pyc matches
/usr/lib/python2.7/site-packages/MythTV/methodheap.py
import MythTV.methodheap # precompiled from
/usr/lib/python2.7/site-packages/MythTV/methodheap.pyc
Traceback (most recent call last):
  File "find_orphans.py", line 221, in <module>
    DB = MythDB()
  File "/usr/lib/python2.7/site-packages/MythTV/database.py", line
1264, in __init__
    for tmpconfig in dbconfig.test(self.log):
  File "/usr/lib/python2.7/site-packages/MythTV/database.py", line 938, in test
    for conn in XMLConnection.fromUPNP(5.0):
  File "/usr/lib/python2.7/site-packages/MythTV/connections.py", line
607, in fromUPNP
    ip, port = reLOC.match(res['location']).group(1,2)
AttributeError: 'NoneType' object has no attribute 'group'

So it clearly doesn't like something in that methodheap.
Interestingly, run an a non-root user it gets past that but segfaults
later:

# /usr/lib/python2.7/site-packages/MythTV/methodheap.pyc matches
/usr/lib/python2.7/site-packages/MythTV/methodheap.py
import MythTV.methodheap # precompiled from
/usr/lib/python2.7/site-packages/MythTV/methodheap.pyc
# /usr/lib/python2.7/site-packages/MySQLdb/connections.pyc matches
/usr/lib/python2.7/site-packages/MySQLdb/connections.py
import MySQLdb.connections # precompiled from
/usr/lib/python2.7/site-packages/MySQLdb/connections.pyc
# /usr/lib/python2.7/site-packages/MySQLdb/constants/CLIENT.pyc
matches /usr/lib/python2.7/site-packages/MySQLdb/constants/CLIENT.py
import MySQLdb.constants.CLIENT # precompiled from
/usr/lib/python2.7/site-packages/MySQLdb/constants/CLIENT.pyc
# /usr/lib/python2.7/site-packages/MySQLdb/converters.pyc matches
/usr/lib/python2.7/site-packages/MySQLdb/converters.py
import MySQLdb.converters # precompiled from
/usr/lib/python2.7/site-packages/MySQLdb/converters.pyc
# /usr/lib/python2.7/site-packages/MySQLdb/constants/FLAG.pyc matches
/usr/lib/python2.7/site-packages/MySQLdb/constants/FLAG.py
import MySQLdb.constants.FLAG # precompiled from
/usr/lib/python2.7/site-packages/MySQLdb/constants/FLAG.pyc
Segmentation fault

Really odd one. Again, not all that important to me now, but strange.
Thanks again!

Tom


More information about the mythtv-users mailing list