From d28ef71d93ea7fe50343f82f575637307b4d74bf Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 4 Feb 2016 13:04:04 -0500 Subject: [PATCH] update db migration --- .../HttpServer/HttpListenerHost.cs | 12 +++++++----- .../Persistence/CleanDatabaseScheduledTask.cs | 11 ++--------- .../Persistence/SqliteItemRepository.cs | 6 ------ .../ApplicationHost.cs | 3 ++- .../Migrations/DbMigration.cs | 3 ++- 5 files changed, 13 insertions(+), 22 deletions(-) diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs index d91d80dbd1..a11eb3aaa7 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -241,7 +241,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer } catch (Exception errorEx) { - _logger.ErrorException("Error this.ProcessRequest(context)(Exception while writing error to the response)", errorEx); + //_logger.ErrorException("Error this.ProcessRequest(context)(Exception while writing error to the response)", errorEx); } } @@ -350,10 +350,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer if (!string.IsNullOrWhiteSpace(GlobalResponse)) { - httpRes.Write(GlobalResponse); - httpRes.ContentType = "text/plain"; - - if (!string.Equals(GetExtension(urlString), "html", StringComparison.OrdinalIgnoreCase)) + if (string.Equals(GetExtension(urlString), "html", StringComparison.OrdinalIgnoreCase)) + { + httpRes.Write(GlobalResponse); + httpRes.ContentType = "text/plain"; + } + else { httpRes.StatusCode = 503; } diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs index 5c600c249f..0959e2123c 100644 --- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs @@ -67,7 +67,8 @@ namespace MediaBrowser.Server.Implementations.Persistence { OnProgress(0); - // Ensure these objects are out of the database. + // Ensure these objects are lazy loaded. + // Without this there is a deadlock that will need to be investigated var rootChildren = _libraryManager.RootFolder.Children.ToList(); rootChildren = _libraryManager.GetUserRootFolder().Children.ToList(); @@ -182,14 +183,6 @@ namespace MediaBrowser.Server.Implementations.Persistence progress.Report(100); } - private void LogMessage(string msg) - { - if (EnableUnavailableMessage) - { - _logger.Info(msg); - } - } - private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress progress) { var itemIds = _libraryManager.GetItemIds(new InternalItemsQuery diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 3dc37110e4..7898dc1ef5 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -583,22 +583,16 @@ namespace MediaBrowser.Server.Implementations.Persistence CheckDisposed(); - _logger.Info("SaveItems waiting on write lock"); - await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false); IDbTransaction transaction = null; try { - _logger.Info("SaveItems creating transaction"); - transaction = _connection.BeginTransaction(); foreach (var item in items) { - _logger.Info("Saving {0}", item.Id); - cancellationToken.ThrowIfCancellationRequested(); var index = 0; diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 46dfd4469f..36d15b95a5 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -317,7 +317,8 @@ namespace MediaBrowser.Server.Startup.Common /// Task. public override async Task RunStartupTasks() { - if (ServerConfigurationManager.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion) + if (ServerConfigurationManager.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion && + ServerConfigurationManager.Configuration.IsStartupWizardCompleted) { TaskManager.SuspendTriggers = true; } diff --git a/MediaBrowser.Server.Startup.Common/Migrations/DbMigration.cs b/MediaBrowser.Server.Startup.Common/Migrations/DbMigration.cs index 5a70467f75..3cd92bcde8 100644 --- a/MediaBrowser.Server.Startup.Common/Migrations/DbMigration.cs +++ b/MediaBrowser.Server.Startup.Common/Migrations/DbMigration.cs @@ -18,7 +18,8 @@ namespace MediaBrowser.Server.Startup.Common.Migrations public void Run() { - if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion) + if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion && + _config.Configuration.IsStartupWizardCompleted) { _taskManager.SuspendTriggers = true; CleanDatabaseScheduledTask.EnableUnavailableMessage = true;