8000 Could not find an implementation for interface Orleans.Storage.IMemoryStorageGrain · Issue #9509 · dotnet/orleans · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Could not find an implementation for interface Orleans.Storage.IMemoryStorageGrain #9509

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
samritchie opened this issue May 20, 2025 · 0 comments
Assignees

Comments

@samritchie
Copy link
samritchie commented May 20, 2025

I’m spiking a streams implementation and running locally with localhost clustering on 9.1.2. I’m unable to get MemoryGrainStorage running and feel like I must be missing something obvious. If I configure DynamoDbGrainStorage instead it all works.

My full silo config is (copied from the Streams docs)

        siloBuilder
            .UseLocalhostClustering()
            .AddMemoryStreams("StreamProvider")
            .AddMemoryGrainStorage("PubSubStore")

Console error on an attempted subscription is:

fail: Orleans.Storage.MemoryGrainStorage[102202]
      Error from storage provider MemoryGrainStorage.PubSubRendezvousGrain during ReadStateAsync for grain pubsubrendezvous/StreamProvider/Test/55f77aafc9dd4cf78cc807a3347f28c7(null)
      System.ArgumentException: Could not find an implementation for interface Orleans.Storage.IMemoryStorageGrain
         at Orleans.GrainInterfaceTypeToGrainTypeResolver.GetGrainType(GrainInterfaceType interfaceType) in /_/src/Orleans.Core/Core/GrainInterfaceTypeToGrainTypeResolver.cs:line 102
         at Orleans.GrainFactory.GetGrain(Type interfaceType, IdSpan grainKey, String grainClassNamePrefix) in /_/src/Orleans.Core/Core/GrainFactory.cs:line 215
         at Orleans.GrainFactory.GetGrain[TGrainInterface](Int64 primaryKey, String grainClassNamePrefix) in /_/src/Orleans.Core/Core/GrainFactory.cs:line 51
         at Orleans.Storage.MemoryGrainStorage.<>c__DisplayClass4_1.<.ctor>b__0() in /_/src/Orleans.Persistence.Memory/Storage/MemoryStorage.cs:line 57
         at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
         at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
         at System.Lazy`1.CreateValue()
         at Orleans.Storage.MemoryGrainStorage.GetStorageGrain(String id) in /_/src/Orleans.Persistence.Memory/Storage/MemoryStorage.cs:line 124
         at Orleans.Storage.MemoryGrainStorage.ReadStateAsync[T](String grainType, GrainId grainId, IGrainState`1 grainState) in /_/src/Orleans.Persistence.Memory/Storage/MemoryStorage.cs:line 68
         at Orleans.Core.StateStorageBridge`1.ReadStateAsync() in /_/src/Orleans.Runtime/Storage/StateStorageBridge.cs:line 85

This seems very odd as the call is coming from the same assembly that contains the implementation, I’m unsure why it can’t find it. I’ve attempted to use MemoryGrainStorage for a custom grain and get the same issue, I don’t think this is specific to streams.

There was a very old issue #4084 that seems similar but it doesn’t look like application parts are still a concept in the current version.

(dotnet sdk 9.0.300 (arm64), macOS 15.4.1)

@samritchie samritchie changed the title Could not find an implementation for interface Orleans.Storage.IMemoryStorageGrain Could not find an implementation for interface Orleans.Storage.IMemoryStorageGrain May 20, 2025
@ReubenBond ReubenBond self-assigned this May 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0