From b9f707dc2f4dec79a7415d7941d81da2664e5803 Mon Sep 17 00:00:00 2001 From: Tom Andrews Date: Sat, 15 Dec 2018 13:31:24 +0000 Subject: [PATCH] Watch out for malformed AlbumReleases in Albums Don't try to insert if Title is empty and catch and SQLite exceptions. --- .../Migration/023_add_release_groups_etc.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Datastore/Migration/023_add_release_groups_etc.cs b/src/NzbDrone.Core/Datastore/Migration/023_add_release_groups_etc.cs index 2e5d64571..00c5e56ec 100644 --- a/src/NzbDrone.Core/Datastore/Migration/023_add_release_groups_etc.cs +++ b/src/NzbDrone.Core/Datastore/Migration/023_add_release_groups_etc.cs @@ -5,6 +5,8 @@ using System.Collections.Generic; using NzbDrone.Core.Music; using System.Data; using System; +using System.Data.SQLite; +using NzbDrone.Common.Extensions; namespace NzbDrone.Core.Datastore.Migration { @@ -221,6 +223,12 @@ namespace NzbDrone.Core.Datastore.Migration { foreach (var release in releases) { + if (release.Title.IsNullOrWhiteSpace()) + { + _logger.Warn("Skipping malformed AlbumRelease [{0}] '{1}'", release.ForeignReleaseId, release.Title); + continue; + } + using (var writeReleaseCmd = conn.CreateCommand()) { writeReleaseCmd.Transaction = tran; @@ -239,7 +247,15 @@ namespace NzbDrone.Core.Datastore.Migration writeReleaseCmd.AddParameter(release.TrackCount); writeReleaseCmd.AddParameter(release.Monitored); - writeReleaseCmd.ExecuteNonQuery(); + try + { + writeReleaseCmd.ExecuteNonQuery(); + } + catch(SQLiteException e) + { + _logger.Warn("Caught SQLiteException {0}", e); + _logger.Warn("Skipping malformed AlbumRelease [{0}] '{1}'", release.ForeignReleaseId, release.Title); + } } } }