From 696932609256946fe85599ed2ea7f9e74fb79e3d Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 9 Nov 2023 15:33:03 -0800 Subject: [PATCH] Don't store status results for invalid providers (cherry picked from commit de23182d593e2284972103d505e66dd8d812dfdb) (cherry picked from commit 44d8dbaac81706691124ae5f8317289f0a3e5d73) --- .../IndexerTests/IndexerStatusServiceFixture.cs | 11 +++++++++++ .../Status/ProviderStatusServiceBase.cs | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/NzbDrone.Core.Test/IndexerTests/IndexerStatusServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/IndexerStatusServiceFixture.cs index 55ed8abfb..f836852e1 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/IndexerStatusServiceFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/IndexerStatusServiceFixture.cs @@ -68,5 +68,16 @@ namespace NzbDrone.Core.Test.IndexerTests VerifyNoUpdate(); } + + [Test] + public void should_not_record_failure_for_unknown_provider() + { + Subject.RecordFailure(0); + + Mocker.GetMock() + .Verify(v => v.FindByProviderId(1), Times.Never); + + VerifyNoUpdate(); + } } } diff --git a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs index 15cf84d3b..6279c6e35 100644 --- a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs +++ b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs @@ -59,6 +59,11 @@ namespace NzbDrone.Core.ThingiProvider.Status public virtual void RecordSuccess(int providerId) { + if (providerId <= 0) + { + return; + } + lock (_syncRoot) { var status = GetProviderStatus(providerId); @@ -79,6 +84,11 @@ namespace NzbDrone.Core.ThingiProvider.Status protected virtual void RecordFailure(int providerId, TimeSpan minimumBackOff, bool escalate) { + if (providerId <= 0) + { + return; + } + lock (_syncRoot) { var status = GetProviderStatus(providerId);