Orleans v3.3.0 Release Notes

Release Date: 2020-09-09 // over 3 years ago
  • πŸ‘Œ Improved diagnostics for long running, delayed, and blocked request:

    πŸš€ This release includes improvements to give developers additional context when a request does not return promptly. PR #6672 added these improvements. Orleans will periodically probe active grains to inspect their message queues and send status updates for certain requests which have been enqueued or executing for too long. These status messages will appear as warnings in the logs and will also be included in exceptions when a request timeout occurs. The information included can help a developer to identify what the grain is doing at the time of the request. For example, which messages are enqueued ahead of this message, and which messages are executing, how long they have been executing, how long this message has been enqueued, and the status of the grain's TaskScheduler.

    πŸ“¦ Microsoft.Orleans.Hosting.Kubernetes NuGet package (3.3.0-beta1) for tighter integration with Kubernetes

    πŸ“š This release adds a new pre-release package, Microsoft.Orleans.Hosting.Kubernetes, which adds richer integration for users hosting on Kubernetes. The package assists users by monitoring Kubernetes for silo pods and reflecting changes in cluster membership. For example, when a Pod is deleted, it is immediately removed from Orleans' membership. In addition, the package configures EndpointOptions and `ClusterOptions' to match the Pod's environments. Documentation and a sample project are expected in the coming weeks, and in the meantime, please see the original PR for more information: #6707.

    πŸ‘Œ Improvements and bug fixes since 3.2.0.

    Potentially breaking change

    • Added 'RecordExists' flag to perisistent store so that grains can det… (#6580)
      ⚑️ (Implementations of IStorage<TState> and IGrainState need to be updated to add a RecordExists property.)

    Non-breaking improvements

    • Use "static" client observer to notify from the gateway when the silo is shutting down (#6613)
    • More graceful termination of network connections (#6557) (#6625)
    • Use TaskCompletionSource.RunContinuationsAsynchronously (#6573)
    • Observe discarded ping task results (#6577)
    • Constrain work done under a lock in BatchWorker (#6586)
    • Support deterministic builds with CodeGenerator (#6592)
    • Fix some xUnit test discovery issues (#6584)
    • Delete old Joining records as part of cleanup of defunct entries (#6601, #6624)
    • Propagate transaction exceptions in more cases (#6615)
    • SocketConnectionListener: allow address reuse (#6653)Improve ClusterClient disposal (#6583)
    • AAD authentication for Azure providers (blob, queue & table) (#6648)
    • Make delay after gw shutdown notification configurable (#6679)
    • Tweak shutdown completion signalling (#6685) (#6696)
    • Close some kinds of misbehaving connections during shutdown (#6684) (#6695)
    • Send status messages for long-running and blocked requests (#6672) (#6694)
    • Kubernetes hosting integration (#6707) (#6721)
    • Reduce log noise (#6705)

    - Upgrade AWS dependencies to their latest versions. (#6723)

    πŸ›  Non-breaking bug fixes

    • Fix SequenceNumber for MemoryStream (#6622) (#6623)
    • When activation is stuck, make sure to unregister from the directory before forwarding messages (#6593)
    • Fix call pattern that throws. (#6626)
    • Avoid NullReferenceException in Message.TargetAddress (#6635)
    • Fix unobserved ArgumentOutOfRangeException from Task.Delay (#6640)
    • Fix bad merge (#6656)
    • Avoid race in GatewaySender.Send (#6655)
    • Ensure that only one instance of IncomingRequestMonitor is created (#6714)