I'm seeing this error when I upgrade to azure storage emulator 4.3 and WindowsAzure.Storage 7.0.0
This is Orleans version 1.2.0-beta
Exc level 0: System.AggregateException: One or more errors occurred.
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(TimeSpan timeout)
at Orleans.OrleansTaskExtentions.WaitWithThrow(Task task, TimeSpan timeout)
at Orleans.Runtime.Silo.DoStart()
at Orleans.Runtime.Silo.Start()
Exc level 1: System.MissingMethodException: Method not found: 'Microsoft.WindowsAzure.Storage.Table.TableOperation Microsoft.WindowsAzure.Storage.Table.TableOperation.Retrieve(System.String, System.String)'.
at Orleans.AzureUtils.AzureTableDataManager`1.<ReadSingleTableEntryAsync>d__22.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)
at Orleans.AzureUtils.AzureTableDataManager`1.ReadSingleTableEntryAsync(String partitionKey, String rowKey)
at Orleans.AzureUtils.OrleansSiloInstanceManager.<TryCreateTableVersionEntryAsync>d__28.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.MembershipService.AzureBasedMembershipTable.<InitializeMembershipTable>d__2.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()
[WaWorkerHost.exe] [2016-04-21 16:18:12.309 GMT 16 ERROR 100105 OrleansSiloHost 127.0.0.1:11111] !!!!!!!!!! ERROR starting Orleans silo
It seems that currently used overload was removed with latest release of the Microsoft.WindowsAzure.Storage: https://github.com/Azure/azure-storage-net/blob/master/changelog.txt#L26 (https://github.com/Azure/azure-storage-net/commit/b4699d38f6583a2cb4136586e687f04c7784fae8#diff-b3a2e425bcab638d6f00343aec8d058bL44), but it still can use this one - https://github.com/Azure/azure-storage-net/blob/6152eb5fe3264eaa12117977edcf971b8c3debd2/Lib/Common/Table/TableOperation.Common.cs#L256. I expect it to be fixed after rebuild with latest azure table storage.dll.
@dVakulen
Thanks for the information. Unfortunately, the new api call would require us to recompile using the new storage version. We need a call that exists in both versions.
I replaced the retrieve call with table query.
See PR "Azure storage 7.0 compatibility" #1704
It looks like a policy change - previously Orleans took dependency on Stable-1 version ( e.g. in this case it's 6.2). Should we check 1.2 compartibility with Json.NET 8.0 then ?
Yes, we agreed that the -1 policy was wrong because it was forcing Orleans users to upgrade their dependencies even if Orleans code didn't actually need the newer versions.
We know people already use Orleans with Newtonsoft.Json 8.0, and there weren't any issues reported.
Does this mean that Orleans will require the latest stable (actually this will force users to upgrade even further :) ) or it'll be last working one + it will be tested with latest stable ?
The updated policy is that we require the lowest version we actually depend on. E.g. we had to upgrade to Newtonsoft.Json 7.0 because of the Consul library's dependency on it.
We still need to make sure we are compatible with higher versions of those dependencies as they get released. This issue and the previous similar one with Azure Storage 6.0 are examples of where we fix compatibility without taking a dependency on higher versions of Azure Storage.
Fixed via #1704.
Most helpful comment
Yes, we agreed that the -1 policy was wrong because it was forcing Orleans users to upgrade their dependencies even if Orleans code didn't actually need the newer versions.
We know people already use Orleans with Newtonsoft.Json 8.0, and there weren't any issues reported.