From b611a66ff51b5fef33d963a6c2c7e41a813c7e7f Mon Sep 17 00:00:00 2001 From: croneter Date: Fri, 13 Dec 2019 13:55:56 +0100 Subject: [PATCH] Fix sync getting stuck --- resources/lib/library_sync/fill_metadata_queue.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/resources/lib/library_sync/fill_metadata_queue.py b/resources/lib/library_sync/fill_metadata_queue.py index 64665611..ca6c2d4e 100644 --- a/resources/lib/library_sync/fill_metadata_queue.py +++ b/resources/lib/library_sync/fill_metadata_queue.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, division, unicode_literals from logging import getLogger +from Queue import Empty from . import common from ..plex_db import PlexDB @@ -8,6 +9,8 @@ from .. import backgroundthread LOG = getLogger('PLEX.sync.fill_metadata_queue') +QUEUE_TIMEOUT = 10 # seconds + class FillMetadataQueue(common.LibrarySyncMixin, backgroundthread.KillableThread): @@ -40,7 +43,14 @@ class FillMetadataQueue(common.LibrarySyncMixin, if (not self.repair and plexdb.checksum(plex_id, section.plex_type) == checksum): continue - self.get_metadata_queue.put((count, plex_id, section)) + try: + self.get_metadata_queue.put((count, plex_id, section), + timeout=QUEUE_TIMEOUT) + except Empty: + LOG.error('Putting %s in get_metadata_queue timed out - ' + 'aborting sync now', plex_id) + section.sync_successful = False + break count += 1 # We might have received LESS items from the PMS than anticipated. # Ensures that our queues finish