Heterogenous clusters race finding grain implementation shortly after startup
- Dominant language
- C#
- Stars
- 10.9k
- Forks
- 2.1k
- Avg merge
- 13h 56m
- Merged PRs (30d)
- 351
Description
When a server joins a heterogenous cluster, there is a window of time during which that silo will not be aware of grain implementations on other silos in the cluster.
This can lead to errors such as the `System.ArgumentException: Cannot find an implementation class for grain interface: DotnetMoo.Grains.Interfaces.IWorldGrain. Make sure the grain assembly was correctly deployed and loaded in the silo.`:
```
Unhandled exception. System.ArgumentException: Cannot find an implementation class for grain interface: DotnetMoo.Grains.Interfaces.IWorldGrain. Make sure the grain assembly was correctly deployed and loaded in the silo. at Orleans.GrainFactory.GetGrainClassData(Type interfaceType, String grainClassNamePrefix) at Orleans.GrainFactory.GetGrain[TGrainInterface](Guid primaryKey, String grainClassNamePrefix) at DotnetMoo.Regions.Wildlands.WildlandsRegionWorker.StartAsync(CancellationToken cancellationToken) in /Users/bradygaster/source/dotnet-moo/src/DotnetMoo.Regions.Wildlands/WildlandsRegionWorker.cs:line 42 at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at DotnetMoo.Regions.Wildlands.Program.Main(String[] args) in /Users/bradygaster/source/dotnet-moo/src/DotnetMoo.Regions.Wildlands/Program.cs:line 16
```
Contributor guide
Assessment
This issue has not been assessed yet.