From 07a4acd0c325515485c9d8fc64dab8de94f9d8f4 Mon Sep 17 00:00:00 2001 From: Konrad Dysput Date: Mon, 3 Dec 2018 22:09:00 +0100 Subject: [PATCH] v2.0.5 Version 2.0.5 - 03.12.2018 Removed unused usings, BacktraceDatabase conditions with maximum number of records/maximum disk space fix, Removed invalid tests from Backtrace.Tests solution. --- .../ClientReportLimitTests.cs | 65 +------------------ Backtrace/Backtrace.csproj | 8 +-- Backtrace/BacktraceDatabase.cs | 8 ++- Backtrace/Interfaces/IBacktraceAPI.cs | 3 +- Backtrace/Model/BacktraceData.cs | 7 +- Backtrace/Model/BacktraceReport.cs | 2 + .../Model/Database/BacktraceDatabaseRecord.cs | 5 +- Backtrace/Model/JsonData/Annotations.cs | 2 - Backtrace/Model/JsonData/SourceCodeData.cs | 3 - Backtrace/Services/BacktraceApi.cs | 1 - CHANGELOG.md | 5 ++ README.md | 4 +- 12 files changed, 26 insertions(+), 87 deletions(-) diff --git a/Backtrace.Tests/IntegrationTests/ClientReportLimitTests.cs b/Backtrace.Tests/IntegrationTests/ClientReportLimitTests.cs index b37ab39..a4e8fcd 100644 --- a/Backtrace.Tests/IntegrationTests/ClientReportLimitTests.cs +++ b/Backtrace.Tests/IntegrationTests/ClientReportLimitTests.cs @@ -1,5 +1,4 @@ -using Backtrace.Base; -using Backtrace.Interfaces; +using Backtrace.Interfaces; using Backtrace.Model; using Backtrace.Model.Database; using Backtrace.Services; @@ -147,67 +146,5 @@ public void SingleThreadWithoutReportRateLimit(int numberOfTasks) Assert.AreEqual(expectedNumberOfReports, totalSend); Assert.IsFalse(clientReportLimitReached); } - - /// - /// Test a initialization and submission sequence for backtrace client w/ threading w/o rate limiting - /// - [TestCase(1, 2)] - [TestCase(5, 2)] - [TestCase(10, 2)] - [TestCase(1, 5)] - [TestCase(5, 10)] - [TestCase(5, 20)] - [Test(Author = "Arthur Tu and Konrad Dysput", Description = "Test a initialization and submission sequence for backtrace client w/ threading w/o rate limiting")] - public void ThreadedWithReportRateLimit(int numberOfTasks, int clientRateLimit) - { - //set rate limiting - clientReportLimitReached = false; - _backtraceClient.SetClientReportLimit((uint)clientRateLimit); - - //set expected number of drop and request - int expectedNumberOfAttempts = 4 * numberOfTasks; - int expectedNumberOfDropRequest = expectedNumberOfAttempts - (int)clientRateLimit; - - if (expectedNumberOfDropRequest < 0) - { - expectedNumberOfDropRequest = 0; - } - - var tasks = new Task[numberOfTasks]; - int totalAttemps = 0; - int totalDrop = 0; - int totalNumberOfDropsOnEvents = 0; - - //set backtrace events - _backtraceClient.OnClientReportLimitReached = (BacktraceReport report) => - { - totalDrop++; - clientReportLimitReached = true; - }; - _backtraceClient.AfterSend = (BacktraceResult res) => - { - if (res.Status == BacktraceResultStatus.LimitReached) - { - totalNumberOfDropsOnEvents++; - } - totalAttemps++; - }; - - //initialize startup tasks - for (int taskIndex = 0; taskIndex < numberOfTasks; taskIndex++) - { - tasks[taskIndex] = ThreadTest(taskIndex); - } - Task.WaitAll(tasks); - - //check if BacktraceResult is correct on events - Assert.AreEqual(totalDrop, totalNumberOfDropsOnEvents); - //check correct number of attempts - Assert.AreEqual(totalAttemps, expectedNumberOfAttempts); - //check if expected number of drops are equal to total dropped packages from rate limit client - Assert.AreEqual(totalDrop, expectedNumberOfDropRequest); - //check if limit reached or if any report was dropped - Assert.IsTrue(clientReportLimitReached || totalDrop == 0); - } } } diff --git a/Backtrace/Backtrace.csproj b/Backtrace/Backtrace.csproj index c1e1d3c..09efedd 100644 --- a/Backtrace/Backtrace.csproj +++ b/Backtrace/Backtrace.csproj @@ -4,7 +4,7 @@ netstandard2.0;net45;net35 true Backtrace Error Diagnostic Tools Debug Bug Bugs StackTrace - 2.0.4 + 2.0.5 Backtrace https://github.com/backtrace-labs/backtrace-csharp/blob/master/LICENSE https://github.com/backtrace-labs/backtrace-csharp @@ -12,12 +12,12 @@ Backtrace's integration with C# applications allows customers to capture and report handled and unhandled C# exceptions to their Backtrace instance, instantly offering the ability to prioritize and debug software errors. https://github.com/backtrace-labs/backtrace-csharp en - 2.0.4 + 2.0.5 Backtrace I/O Backtrace I/O Backtrace I/O - 2.0.4.0 - 2.0.4.0 + 2.0.5.0 + 2.0.5.0 diff --git a/Backtrace/BacktraceDatabase.cs b/Backtrace/BacktraceDatabase.cs index 4858a45..a5b71e3 100644 --- a/Backtrace/BacktraceDatabase.cs +++ b/Backtrace/BacktraceDatabase.cs @@ -417,15 +417,19 @@ private bool ValidateDatabaseSize() //check database size. If database size == 0 then we ignore this condition //remove all records till database use enough space - if (DatabaseSettings.MaxDatabaseSize != 0) + if (DatabaseSettings.MaxDatabaseSize != 0 && BacktraceDatabaseContext.GetSize() > DatabaseSettings.MaxDatabaseSize) { //if your database is entry or every record is locked //deletePolicyRetry avoid infinity loop int deletePolicyRetry = 5; - while (BacktraceDatabaseContext.GetSize() > DatabaseSettings.MaxDatabaseSize || deletePolicyRetry != 0) + while (BacktraceDatabaseContext.GetSize() > DatabaseSettings.MaxDatabaseSize) { BacktraceDatabaseContext.RemoveLastRecord(); deletePolicyRetry--; + if(deletePolicyRetry != 0) + { + break; + } } return deletePolicyRetry != 0; } diff --git a/Backtrace/Interfaces/IBacktraceAPI.cs b/Backtrace/Interfaces/IBacktraceAPI.cs index 7d77a2e..99279e1 100644 --- a/Backtrace/Interfaces/IBacktraceAPI.cs +++ b/Backtrace/Interfaces/IBacktraceAPI.cs @@ -1,5 +1,4 @@ -using Backtrace.Base; -using Backtrace.Model; +using Backtrace.Model; using System; namespace Backtrace.Interfaces diff --git a/Backtrace/Model/BacktraceData.cs b/Backtrace/Model/BacktraceData.cs index 1342930..cbbbb0a 100644 --- a/Backtrace/Model/BacktraceData.cs +++ b/Backtrace/Model/BacktraceData.cs @@ -1,11 +1,10 @@ -using Newtonsoft.Json; +using Backtrace.Model.JsonData; +using Newtonsoft.Json; using System; using System.Collections.Generic; -using Backtrace.Model.JsonData; using System.Linq; using System.Reflection; using static Backtrace.Model.JsonData.SourceCodeData; -using Backtrace.Base; namespace Backtrace.Model { @@ -43,7 +42,7 @@ public class BacktraceData /// Name of the client that is sending this error report. /// [JsonProperty(PropertyName = "agent")] - public const string Agent = "backtrace-csharp"; + public const string Agent = "backtrace-csharp"; /// /// Version of the C# library diff --git a/Backtrace/Model/BacktraceReport.cs b/Backtrace/Model/BacktraceReport.cs index b6aa5a5..7186750 100644 --- a/Backtrace/Model/BacktraceReport.cs +++ b/Backtrace/Model/BacktraceReport.cs @@ -1,7 +1,9 @@ using Backtrace.Extensions; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; #if !NET35 using System.Runtime.ExceptionServices; diff --git a/Backtrace/Model/Database/BacktraceDatabaseRecord.cs b/Backtrace/Model/Database/BacktraceDatabaseRecord.cs index af599d6..39c3f57 100644 --- a/Backtrace/Model/Database/BacktraceDatabaseRecord.cs +++ b/Backtrace/Model/Database/BacktraceDatabaseRecord.cs @@ -1,5 +1,4 @@ -using Backtrace.Base; -using Backtrace.Interfaces.Database; +using Backtrace.Interfaces.Database; using Newtonsoft.Json; using System; using System.Diagnostics; @@ -153,7 +152,7 @@ public bool Save() { DiagnosticDataPath = Save(Record, $"{Id}-attachment"); ReportPath = Save(Record.Report, $"{Id}-report"); - + // get minidump information MiniDumpPath = Record.Report?.MinidumpFile ?? string.Empty; Size += MiniDumpPath == string.Empty ? 0 : new FileInfo(MiniDumpPath).Length; diff --git a/Backtrace/Model/JsonData/Annotations.cs b/Backtrace/Model/JsonData/Annotations.cs index c1de46e..86bcf67 100644 --- a/Backtrace/Model/JsonData/Annotations.cs +++ b/Backtrace/Model/JsonData/Annotations.cs @@ -1,8 +1,6 @@ using Newtonsoft.Json; -using System; using System.Collections.Generic; using System.Reflection; -using System.Text; namespace Backtrace.Model.JsonData { diff --git a/Backtrace/Model/JsonData/SourceCodeData.cs b/Backtrace/Model/JsonData/SourceCodeData.cs index 6d5c483..2eb534c 100644 --- a/Backtrace/Model/JsonData/SourceCodeData.cs +++ b/Backtrace/Model/JsonData/SourceCodeData.cs @@ -1,10 +1,7 @@ using Newtonsoft.Json; -using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Text; -using System.Text.RegularExpressions; namespace Backtrace.Model.JsonData { diff --git a/Backtrace/Services/BacktraceApi.cs b/Backtrace/Services/BacktraceApi.cs index 118af04..b6dc192 100644 --- a/Backtrace/Services/BacktraceApi.cs +++ b/Backtrace/Services/BacktraceApi.cs @@ -7,7 +7,6 @@ using Backtrace.Common; using System.Collections.Generic; using Backtrace.Extensions; -using Backtrace.Base; #if !NET35 using System.Threading.Tasks; using System.Net.Http; diff --git a/CHANGELOG.md b/CHANGELOG.md index 234e2d3..ab550c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Backtrace C# Release Notes +## Version 2.0.5 - 03.12.2018 +- Removed unused usings, +- `BacktraceDatabase` conditions with maximum number of records/maximum disk space fix, +- Removed invalid tests from `Backtrace.Tests` solution. + ## Version 2.0.4 - 23.09.2018 - `BacktraceClient` allows developer to unpack `AggregateException` and send only exceptions available in `InnerExceptions` property. - `BacktraceReport` accepts two new properties: `Factor` and `Fingerprint`. These properties allows you to change server side algorithms. diff --git a/README.md b/README.md index 4a626ec..772cda5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Backtrace -[![Backtrace@release](https://img.shields.io/badge/Backtrace%40master-2.0.4-blue.svg)](https://www.nuget.org/packages/Backtrace) +[![Backtrace@release](https://img.shields.io/badge/Backtrace%40master-2.0.5-blue.svg)](https://www.nuget.org/packages/Backtrace) [![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp) -[![Backtrace@pre-release](https://img.shields.io/badge/Backtrace%40dev-2.0.5-blue.svg)](https://www.nuget.org/packages/Backtrace) +[![Backtrace@pre-release](https://img.shields.io/badge/Backtrace%40dev-2.0.6-blue.svg)](https://www.nuget.org/packages/Backtrace) [![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu/branch/dev?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp/branch/dev)