-
Major changes (since 2.0.0-beta3)
- New provider lifecycle model to replace the old one (#3738, #3887, #3946, #3927, #4000, #4026, #4022, #4045, #4031, #4047, #4063, #4042, #4064, #4066, #4067, )
- Builder pattern and options-based configuration of components and extensions (#3897, #3900, #3878, #3901, #3947, #3972, #3977, #3948, #3963, #3981, #4020, #4025, #4024, #4030, #4035, #4029, #4022, #4031, #4049, #4064, #4066, #4070, #4067, #4074)
-
Known issues
- AddMemoryGrainStorage() and AddMemoryGrainStorageAsDefault() do not ensure that
OrleansProviders.dll
is added and inspected for grain types. In a non-default case, when silo configuration code explicitly adds application assemblies (viaConfigureApplicationParts
) but doesn't includeOrleansProviders.dll
in the list, the memory grain storage provider will not function. The workaround is to addOrleansProviders.dll
to the list viaConfigureApplicationParts
. The default case, whenConfigureApplicationParts
isn't explicitly called and all assemblies in the silo folder are scanned, works as expeted.
- AddMemoryGrainStorage() and AddMemoryGrainStorageAsDefault() do not ensure that
-
Breaking changes
- Allow reentrancy within a grain call chain (#3185, #3958). Enabled by default.
- Move legacy logging methods to legacy package (#3808)
- Rename "SQL" to "AdoNet" everywhere (#3990)
- Move ObserverSubscriptionManager to legacy (#3999)
- Remove metrics publishers (#3988)
- Make most methods of Grain class non-virtual. (#4004)
- Refactor EndpointOptions to allow listening on an address that is different from the externally reachable address (#4005)
- Remove statistics table publishers (#4023)
- Add startup tasks to replace deprecated bootstrap providers (#4026)
- Remove FastKillOnCancel setting, add ProcessExitHandlingOptions (#4036)
- Configure default application parts if no assemblies have been added (#4058)
-
Non-breaking improvements
- Add processing time measure on silo start up sequence and code gen (#3788)
- Make buffer size bounded when reading connection preamble (#3818)
- Make UnObservedExceptionHandler optional (#3829)
- Display GrainId/type of SystemGrain and SystemTarget in GrainId.ToStringImpl (#3849)
- Disable debug context usage (#3861)
- Allow for null access/secret for EC2 provisioned credentials. (#3870)
- Bring back PerfCounterEnvironmentStatistics (#3891)
- Expose RequestContextData in PlacementTarget (#3899)
- Mark all created threads as background & name all threads (#3902)
- Remove Newtonsoft.JSON dependency from core abstractions (#3926)
- Update Service Fabric to support .NET Standard (#3931)
- Dispose InboundMessageQueue during MessageCenter disposal (#3938)
- Removed uncessesary lock in LocalGrainDirectory (#3961)
- Add exception msg to WithTimeout method. Refactor MembershipTableFactory (#3962)
- Allow OrleansJsonSerializer to be used as an external serialization provider (#3960)
- Sanitize azure queue name (#4001)
- Outgoing grain call filters (#3842)
-
Non-breaking bug fixes
- Fix read lock on FileLogger & FileLogConsumer. and switch to UTF8 (#3856)
- Return the Cluster GrainInterfaceMap instead of the local one in InsideRuntimeClient (#3875)
- Remove locks in LoadedProviderTypeLoaders and ProviderTypeLoader that appear unnecessary and caused occasional deadlocks in tests. (#3914)
- TestCluster: set instance number for new Silo handles (#3939)
- Use UriBuilder in ToGatewayUri() (#3937)
- Fix deadlocks in AdoNet provider and tests caused by AdoNet driver implementations (#3163)
- Fix FastKillOnCancelKeyPress not stopping the process. (#3935)
- Fix logger exceptions (#3916)
- Sort list of silos in HashBasedPlacementDirector (#3964)
- Fix leasebasedbalancer bug (#4072)