When using a generic grain types, I get this exception :
Exc level 0: System.NullReferenceException: Object reference not set to an instance of an object.
at Orleans.Storage.CouchBaseDataManager.<Read>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Orleans.Storage.BaseJSONStorageProvider.<ReadStateAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Orleans.Runtime.Scheduler.SchedulerExtensions.<>c__DisplayClass1_0.<<QueueTask>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Orleans.Runtime.Catalog.<SetupActivationState>d__63.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Orleans.Runtime.Catalog.<InitActivation>d__59.MoveNext() 28.17s
I notice the following line in BaseJSONStorageProvider
var grainTypeName = grainType.Split('.').Last();
So if there a generic argument to the type, it would be something like this:
Foo.Foo[Foo.Bar, Foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
Splitting on the . would not work in this case.
Also because the generic arguments makes the key too long, I can see a possibility to easily exceed 250 characters as a key for Couchbase.
For now I am avoiding any generic grain types, but not sure if there would be a solution in couchbase provider for this problem
When using a generic grain types, I get this exception :
I notice the following line in BaseJSONStorageProvider
var grainTypeName = grainType.Split('.').Last();So if there a generic argument to the type, it would be something like this:
Foo.Foo[Foo.Bar, Foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]Splitting on the . would not work in this case.
Also because the generic arguments makes the key too long, I can see a possibility to easily exceed 250 characters as a key for Couchbase.
For now I am avoiding any generic grain types, but not sure if there would be a solution in couchbase provider for this problem