diff --git a/src/Raven.Server/Documents/CountersStorage.cs b/src/Raven.Server/Documents/CountersStorage.cs index 25b73ff975a..c66af22469c 100644 --- a/src/Raven.Server/Documents/CountersStorage.cs +++ b/src/Raven.Server/Documents/CountersStorage.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Runtime.InteropServices; using System.Text; -using NetTopologySuite.Utilities; using Raven.Client.Documents.Changes; using Raven.Client.Documents.Operations.Counters; using Raven.Client.Exceptions.Documents.Counters; @@ -1163,8 +1162,6 @@ public bool PutCounters(DocumentsOperationContext context, string documentId, st } } - public List BadCountersList = new List(); - public bool CheckIfWeHaveBadCounters() { using (_documentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) @@ -1198,19 +1195,6 @@ public bool CheckIfWeHaveBadCounters() return false; } - public long FixCounters() - { - using (_documentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) - using (var tx = context.OpenWriteTransaction()) - { - var result = FixCountersForDocument(context, "drivers/519276"); - tx.Commit(); - return result; - } - } - - public int NumOfCounterGroupsFixed = 0; - public int FixCountersForDocument(DocumentsOperationContext context, string documentId) { List allNames = null; @@ -1319,7 +1303,6 @@ public int FixCountersForDocument(DocumentsOperationContext context, string docu } numOfCounterGroupFixed++; - NumOfCounterGroupsFixed++; } } } diff --git a/src/Raven.Server/Documents/Handlers/CountersHandler.cs b/src/Raven.Server/Documents/Handlers/CountersHandler.cs index d9008a63e40..33434a599f7 100644 --- a/src/Raven.Server/Documents/Handlers/CountersHandler.cs +++ b/src/Raven.Server/Documents/Handlers/CountersHandler.cs @@ -8,7 +8,6 @@ using System.Collections.Generic; using System.Net; using System.Net.Http; -using System.Threading; using System.Threading.Tasks; using Raven.Client; using Raven.Client.Documents.Changes; @@ -19,7 +18,6 @@ using Raven.Client.Exceptions.Documents.Counters; using Raven.Client.Http; using Raven.Client.Json.Serialization; -using Raven.Server.Documents.Handlers.Admin; using Raven.Server.Routing; using Raven.Server.ServerWide.Context; using Raven.Server.TrafficWatch; @@ -789,14 +787,8 @@ protected override long ExecuteCmd(DocumentsOperationContext context) [RavenAction("/databases/*/counters/fix", "PATCH", AuthorizationStatus.ValidUser, EndpointType.Write)] public async Task FixCounterGroups() { - //var docId = GetStringQueryString("id"); var first = GetBoolValueQueryString("first", required: false) ?? true; - var task = FixAllCounterGroups(); - //Database.TxMerger.Enqueue(new ExecuteFixCounterGroupsCommand(Database, docId)); - - // todo remove - await task; if (first == false) { @@ -807,41 +799,35 @@ public async Task FixCounterGroups() var tasks = new List { task }; var toDispose = new List(); - - using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) - using (context.OpenReadTransaction()) + try { - foreach (var node in ServerStore.GetClusterTopology(context).AllNodes) + using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) + using (context.OpenReadTransaction()) { - if (node.Value == Server.WebUrl) - continue; - - var requestExecutor = ClusterRequestExecutor.CreateForShortTermUse(node.Value, Server.Certificate.Certificate, DocumentConventions.DefaultForServer); - toDispose.Add(requestExecutor); - - var cmd = new FixCounterGroupsCommand(Database.Name); + foreach (var node in ServerStore.GetClusterTopology(context).AllNodes) + { + if (node.Value == Server.WebUrl) + continue; + var requestExecutor = ClusterRequestExecutor.CreateForShortTermUse(node.Value, Server.Certificate.Certificate, DocumentConventions.DefaultForServer); + toDispose.Add(requestExecutor); - // todo remove - Task t = Task.Run(async () => await requestExecutor.ExecuteAsync(cmd, context)); - tasks.Add(t); - await t; - /// - - //tasks.Add(requestExecutor.ExecuteAsync(cmd, context)); + var cmd = new FixCounterGroupsCommand(Database.Name); + tasks.Add(requestExecutor.ExecuteAsync(cmd, context)); + } } - } - await Task.WhenAll(tasks); - foreach (var disposable in toDispose) + await Task.WhenAll(tasks); + await NoContent(); + } + finally { - disposable.Dispose(); + foreach (var disposable in toDispose) + { + disposable.Dispose(); + } } - - Console.WriteLine("num of counters fixed: " + Database.DocumentsStorage.CountersStorage.NumOfCounterGroupsFixed); - - await NoContent(); } private async Task FixAllCounterGroups() @@ -869,12 +855,10 @@ private async Task FixAllCounterGroups() private class FixCounterGroupsCommand : RavenCommand { private readonly string _database; - //private readonly string _docId; public FixCounterGroupsCommand(string database) { _database = database; - //_docId = docId; } public override bool IsReadRequest => false; diff --git a/test/SlowTests/Issues/RavenDB_22835.cs b/test/SlowTests/Issues/RavenDB_22835.cs index 565866ee543..6218f653786 100644 --- a/test/SlowTests/Issues/RavenDB_22835.cs +++ b/test/SlowTests/Issues/RavenDB_22835.cs @@ -60,8 +60,6 @@ public async Task SplittingCountersManyTimes_ShouldNotCauseErrorsDuringImport() } // starting import 1 - Console.WriteLine("starting import 1"); - var temp1 = GetTempFileName(); var export = await store.Smuggler.ExportAsync(new DatabaseSmugglerExportOptions(), temp1); await export.WaitForCompletionAsync(TimeSpan.FromMinutes(10)); @@ -71,13 +69,9 @@ public async Task SplittingCountersManyTimes_ShouldNotCauseErrorsDuringImport() await import.WaitForCompletionAsync(TimeSpan.FromMinutes(10)); // import 1 went well, now adding more counters to this doc - Console.WriteLine("import 1 went well, now adding more counters to this doc "); - AddMoreCountersForDoc(store2, rand, id); // starting import 2 - Console.WriteLine("starting import 2"); - var temp2 = GetTempFileName(); export = await store2.Smuggler.ExportAsync(new DatabaseSmugglerExportOptions(), temp2); await export.WaitForCompletionAsync(TimeSpan.FromMinutes(10)); @@ -87,12 +81,9 @@ public async Task SplittingCountersManyTimes_ShouldNotCauseErrorsDuringImport() await import.WaitForCompletionAsync(TimeSpan.FromMinutes(10)); // import 2 went well, now adding more counters to this doc - Console.WriteLine("import 2 went well, now adding more counters to this doc "); - AddMoreCountersForDoc(store3, rand, id); // all good - no exception was thrown during imports or when adding new counters - Console.WriteLine("all good"); } [Fact] @@ -370,7 +361,6 @@ public async Task FixCorruptedCounterData_MultipleDocs() } } - session.Advanced.WaitForReplicationAfterSaveChanges(replicas: 2); session.SaveChanges(); } @@ -441,7 +431,7 @@ public async Task FixCorruptedCounterData_MultipleDocs() } } - private unsafe void CorruptCountersData(DocumentDatabase database, string? id = null) + private unsafe void CorruptCountersData(DocumentDatabase database, string id = null) { using (database.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) using (context.OpenReadTransaction())