diff --git a/src/Raven.Server/Documents/Sharding/ShardedDatabaseContext.Subscriptions.cs b/src/Raven.Server/Documents/Sharding/ShardedDatabaseContext.Subscriptions.cs index adbd4455399..9d7e7d3bb7e 100644 --- a/src/Raven.Server/Documents/Sharding/ShardedDatabaseContext.Subscriptions.cs +++ b/src/Raven.Server/Documents/Sharding/ShardedDatabaseContext.Subscriptions.cs @@ -45,7 +45,7 @@ protected override void SetConnectionException(SubscriptionConnectionsStateOrche protected override string GetNodeFromState(SubscriptionState taskStatus) => taskStatus.NodeTag; - protected override DatabaseTopology GetTopology(ClusterOperationContext context) => _serverStore.Cluster.ReadShardingConfiguration(context, _databaseName).Orchestrator.Topology; + protected override DatabaseTopology GetTopology(ClusterOperationContext context) => _serverStore.Cluster.ReadShardingConfiguration(context, _databaseName)?.Orchestrator.Topology; protected override bool SubscriptionChangeVectorHasChanges(SubscriptionConnectionsStateOrchestrator state, SubscriptionState taskStatus) { diff --git a/src/Raven.Server/Documents/Subscriptions/Sharding/ShardSubscriptionStorage.cs b/src/Raven.Server/Documents/Subscriptions/Sharding/ShardSubscriptionStorage.cs index 68b9a489a33..644861df0a9 100644 --- a/src/Raven.Server/Documents/Subscriptions/Sharding/ShardSubscriptionStorage.cs +++ b/src/Raven.Server/Documents/Subscriptions/Sharding/ShardSubscriptionStorage.cs @@ -73,7 +73,7 @@ public override void HandleDatabaseRecordChange() } } - protected override DatabaseTopology GetTopology(ClusterOperationContext context) => _serverStore.Cluster.ReadShardingConfiguration(context, _databaseName).Shards[_shardNumber]; + protected override DatabaseTopology GetTopology(ClusterOperationContext context) => _serverStore.Cluster.ReadShardingConfiguration(context, _databaseName)?.Shards[_shardNumber]; protected override string GetNodeFromState(SubscriptionState taskStatus) { diff --git a/src/Raven.Server/ServerWide/ClusterStateMachine.cs b/src/Raven.Server/ServerWide/ClusterStateMachine.cs index cf0ea7024b7..28f9d63bcd9 100644 --- a/src/Raven.Server/ServerWide/ClusterStateMachine.cs +++ b/src/Raven.Server/ServerWide/ClusterStateMachine.cs @@ -1,13 +1,10 @@ using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Net.Sockets; using System.Runtime.CompilerServices; -using System.Runtime.ExceptionServices; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; @@ -63,7 +60,6 @@ using Sparrow.Logging; using Sparrow.Server; using Sparrow.Server.Utils; -using Sparrow.Threading; using Sparrow.Utils; using Voron; using Voron.Data; @@ -3554,7 +3550,7 @@ public Raven.Client.ServerWide.Sharding.ShardingConfiguration ReadShardingConfig { using (var raw = ReadRawDatabaseRecord(context, name)) { - return raw.Sharding.MaterializedConfiguration; + return raw?.Sharding.MaterializedConfiguration; } } diff --git a/src/Raven.Server/ServerWide/ShardingStore.cs b/src/Raven.Server/ServerWide/ShardingStore.cs index e074bb775bb..9fecf6d405a 100644 --- a/src/Raven.Server/ServerWide/ShardingStore.cs +++ b/src/Raven.Server/ServerWide/ShardingStore.cs @@ -81,7 +81,7 @@ public bool HasActiveMigrations(string database) { var config = _serverStore.Cluster.ReadShardingConfiguration(database); - return config.HasActiveMigrations(); + return config?.HasActiveMigrations() ?? false; } public DocumentConventions DocumentConventionsForShard => @@ -136,7 +136,9 @@ private ClusterChanges.DatabaseChangedDelegate CreateDelegateForReshardingStatus case nameof(DestinationMigrationConfirmCommand): case nameof(SourceMigrationCleanupCommand): var config = _serverStore.Cluster.ReadShardingConfiguration(database); - + if (config == null) + break; + if (config.BucketMigrations.Count == 0) { messages.Enqueue($"command {type} was skipped.");