dotnet / dotnet/orleans

Heterogenous clusters race finding grain implementation shortly after startup

Open
#7,036 0 comments 1 reaction 1 assignee Claimed by @ReubenBond View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.