From e8db855702fa99e36e38c8c89c869c1140840cbc Mon Sep 17 00:00:00 2001 From: Lucas Zimerman Fraulob Date: Mon, 26 Jul 2021 15:52:40 -0300 Subject: [PATCH 1/2] Fix max breadcrumbs limit when MaxBreadcrumbs is zero or lower --- src/Sentry/Scope.cs | 9 ++++++--- test/Sentry.Tests/ScopeTests.cs | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Sentry/Scope.cs b/src/Sentry/Scope.cs index 75699ec1e0..cd69a5c801 100644 --- a/src/Sentry/Scope.cs +++ b/src/Sentry/Scope.cs @@ -226,9 +226,12 @@ public void AddBreadcrumb(Breadcrumb breadcrumb) } } - var overflow = Breadcrumbs.Count - Options.MaxBreadcrumbs + 1; - - if (overflow > 0) + if (Options.MaxBreadcrumbs <= 0) + { + //Always drop the breadcrumb. + return; + } + else if (Breadcrumbs.Count - Options.MaxBreadcrumbs + 1 > 0) { _breadcrumbs.TryDequeue(out _); } diff --git a/test/Sentry.Tests/ScopeTests.cs b/test/Sentry.Tests/ScopeTests.cs index ef97b9fca9..1cbbd60614 100644 --- a/test/Sentry.Tests/ScopeTests.cs +++ b/test/Sentry.Tests/ScopeTests.cs @@ -254,5 +254,30 @@ public void ClearAttachments_HasAttachments_EmptyList() //Assert scope.Attachments.Should().BeEmpty(); } + + [Theory] + [InlineData(0, -2, 0)] + [InlineData(0, -1, 0)] + [InlineData(0, 0, 0)] + [InlineData(0, 1, 1)] + [InlineData(0, 2, 1)] + [InlineData(1, 2, 2)] + [InlineData(2, 2, 2)] + public void AddBreadcrumb__AddBreadcrumb_RespectLimits(int initialCount, int maxBreadcrumbs, int expectedCount) + { + //Arrange + var scope = new Scope(new SentryOptions() { MaxBreadcrumbs = maxBreadcrumbs }); + + for (int i = 0; i < initialCount; i++) + { + scope.AddBreadcrumb(new Breadcrumb()); + } + + //Act + scope.AddBreadcrumb(new Breadcrumb()); + + //Assert + Assert.Equal(expectedCount, scope.Breadcrumbs.Count); + } } } From 785f188e05ceb8095f4298c378fccb69ec904e1a Mon Sep 17 00:00:00 2001 From: Lucas Zimerman Fraulob Date: Mon, 26 Jul 2021 15:58:45 -0300 Subject: [PATCH 2/2] add changelog. --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d9664f556..5fe2623c55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +## Fixes + +- Fix max breadcrumbs limit when MaxBreadcrumbs is zero or lower ([#1145](https://github.com/getsentry/sentry-dotnet/pull/1145)) + ## 3.8.3 ### Features