From 535163b6758ebf2efc3768340c121db62d6084cf Mon Sep 17 00:00:00 2001 From: croneter Date: Thu, 30 Aug 2018 12:27:16 +0200 Subject: [PATCH 1/2] Fix Kodi crash by committing to DB frequently - Hopefully fixes #531 --- .../lib/library_sync/process_metadata.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/resources/lib/library_sync/process_metadata.py b/resources/lib/library_sync/process_metadata.py index c0258730..2aa683e0 100644 --- a/resources/lib/library_sync/process_metadata.py +++ b/resources/lib/library_sync/process_metadata.py @@ -12,6 +12,11 @@ from . import sync_info ############################################################################### LOG = getLogger("PLEX." + __name__) +# Commit to DB happens only after leaving respective itemtypes context manager +# with item_fct() as item_class: +# After how many items shall we additionally commit? Otherwise, Kodi +# crashes if we sync thousands of items without a single commit. +COMMIT_AFTER_N_ITEMS = 1000 ############################################################################### @@ -57,14 +62,12 @@ class ThreadedProcessMetadata(Thread): LOG.debug('Processing thread started') # Constructs the method name, e.g. itemtypes.Movies item_fct = getattr(itemtypes, self.item_class) - # cache local variables because it's faster - queue = self.queue - stopped = self.stopped + n = 0 with item_fct() as item_class: - while stopped() is False: + while self.stopped() is False: # grabs item from queue try: - item = queue.get(block=False) + item = self.queue.get(block=False) except Empty: sleep(20) continue @@ -83,6 +86,11 @@ class ThreadedProcessMetadata(Thread): with sync_info.LOCK: sync_info.PROCESS_METADATA_COUNT += 1 sync_info.PROCESSING_VIEW_NAME = item['title'] - queue.task_done() + n += 1 + if n == COMMIT_AFTER_N_ITEMS: + n = 0 + item_class.plexconn.commit() + item_class.kodiconn.commit() + self.queue.task_done() self.terminate_now() LOG.debug('Processing thread terminated') From 986981527e7c58479da971c5820164b0d2b95265 Mon Sep 17 00:00:00 2001 From: croneter Date: Thu, 30 Aug 2018 12:29:36 +0200 Subject: [PATCH 2/2] Beta version bump 2.3.11 --- README.md | 2 +- addon.xml | 7 +++++-- changelog.txt | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69fb3f66..ce11318b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![stable version](https://img.shields.io/badge/stable_version-2.3.10-blue.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/stable/repository.plexkodiconnect/repository.plexkodiconnect-1.0.2.zip) -[![beta version](https://img.shields.io/badge/beta_version-2.3.10-red.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/beta/repository.plexkodiconnectbeta/repository.plexkodiconnectbeta-1.0.2.zip) +[![beta version](https://img.shields.io/badge/beta_version-2.3.11-red.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/beta/repository.plexkodiconnectbeta/repository.plexkodiconnectbeta-1.0.2.zip) [![Installation](https://img.shields.io/badge/wiki-installation-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/Installation) [![FAQ](https://img.shields.io/badge/wiki-FAQ-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/faq) diff --git a/addon.xml b/addon.xml index b83ffd54..a524247b 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + @@ -73,7 +73,10 @@ Нативна інтеграція Plex в Kodi Підключає Kodi до серверу Plex. Цей плагін передбачає, що ви керуєте всіма своїми відео за допомогою Plex (і ніяк не Kodi). Ви можете втратити дані, які вже зберігаються у відео та музичних БД Kodi (оскільки цей плагін безпосередньо їх змінює). Використовуйте на свій страх і ризик! Використовуйте на свій ризик - version 2.3.10: + version 2.3.11 (beta only): +- Fix Kodi crash by committing to DB frequently + +version 2.3.10: - Compatibility with Kodi 18 Leia Beta 1 - Update translations - Make version 2.3.9 available for everyone diff --git a/changelog.txt b/changelog.txt index a2192300..ead72a4c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ +version 2.3.11 (beta only): +- Fix Kodi crash by committing to DB frequently + version 2.3.10: - Compatibility with Kodi 18 Leia Beta 1 - Update translations