Skip to content

Commit

Permalink
tmdb3.py: Prevent program from stalling
Browse files Browse the repository at this point in the history
From the -users list. If one (or more) requests stall, no
more metadata is retrieved until all stalled requests are
killed (or the backend is rebooted.)

Signed-off-by: Bill Meek <billmeek@mythtv.org>
(cherry picked from commit 98f4fc8)
  • Loading branch information
Jan Ceuleers authored and Bill Meek committed Jun 4, 2019
1 parent 402e827 commit 4761e7a
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions mythtv/programs/scripts/metadata/Movie/tmdb3.py
Expand Up @@ -29,6 +29,10 @@

from optparse import OptionParser
import sys
import signal

def timeouthandler(signal, frame):
raise RuntimeError("Timed out")

def buildSingle(inetref, opts):
from MythTV.tmdb3.tmdb_exceptions import TMDBRequestInvalid
Expand Down Expand Up @@ -275,6 +279,9 @@ def main():

opts, args = parser.parse_args()

signal.signal(signal.SIGALRM, timeouthandler)
signal.alarm(30)

if opts.version:
buildVersion()

Expand Down Expand Up @@ -312,14 +319,18 @@ def main():
sys.stdout.write('ERROR: tmdb3.py requires exactly one non-empty argument')
sys.exit(1)

if opts.movielist:
buildList(args[0], opts)
try:
if opts.movielist:
buildList(args[0], opts)

if opts.moviedata:
buildSingle(args[0], opts)
if opts.moviedata:
buildSingle(args[0], opts)

if opts.collectiondata:
buildCollection(args[0], opts)
if opts.collectiondata:
buildCollection(args[0], opts)
except RuntimeError, exc:
sys.stdout.write('ERROR: ' + str(exc) + ' exception')
sys.exit(1)

if __name__ == '__main__':
main()

0 comments on commit 4761e7a

Please sign in to comment.