From 61b16f45796faa73c8cd349e62cc2abc196a6ead Mon Sep 17 00:00:00 2001 From: Reuben Bond Date: Wed, 16 Jul 2025 12:05:07 -0700 Subject: [PATCH] Disallow creating a grain activation before a silo is active --- src/Orleans.Runtime/Catalog/Catalog.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Orleans.Runtime/Catalog/Catalog.cs b/src/Orleans.Runtime/Catalog/Catalog.cs index 0116846783f..16b89b1c5cf 100644 --- a/src/Orleans.Runtime/Catalog/Catalog.cs +++ b/src/Orleans.Runtime/Catalog/Catalog.cs @@ -124,7 +124,7 @@ public IGrainContext GetOrCreateActivation( return result; } - if (!_siloStatusOracle.CurrentStatus.IsTerminating()) + if (_siloStatusOracle.CurrentStatus == SiloStatus.Active) { var address = new GrainAddress { @@ -161,10 +161,11 @@ public IGrainContext GetOrCreateActivation( static IGrainContext UnableToCreateActivation(Catalog self, GrainId grainId) { // Did not find and did not start placing new - var isTerminating = self._siloStatusOracle.CurrentStatus.IsTerminating(); - if (isTerminating) + var status = self._siloStatusOracle.CurrentStatus; + var isTerminating = status.IsTerminating(); + if (status is not SiloStatus.Active) { - self.LogDebugUnableToCreateActivationTerminating(grainId); + self.LogDebugUnableToCreateActivationWhenNotActive(grainId); } else { @@ -391,10 +392,9 @@ private readonly struct SiloAddressLogValue(SiloAddress silo) private partial void LogDebugDeactivateAllActivations(); [LoggerMessage( - EventId = (int)ErrorCode.CatalogNonExistingActivation2, Level = LogLevel.Debug, - Message = "Unable to create activation for grain {GrainId} because this silo is terminating")] - private partial void LogDebugUnableToCreateActivationTerminating(GrainId grainId); + Message = "Unable to create activation for grain {GrainId} because this silo is not active.")] + private partial void LogDebugUnableToCreateActivationWhenNotActive(GrainId grainId); [LoggerMessage( EventId = (int)ErrorCode.CatalogNonExistingActivation2,