Microsoft Azure Service Fabric Release Notes

SDK Version 2.1.150
Runtime Version 5.1.150
Tools Version 1.1.40531

This is a minor release of the Service Fabric SDK and runtime. It includes the feature improvements and bug fixes described below.

Important note: If you are using the Service Fabric tools for Visual Studio 2015, you will need upgrade to Visual Studio 2015 Update 2 in order to install this release.

Service Fabric Runtime

Features

Azure Active Directory support for Client Authentication

We now support Azure Active Directory (AAD) for client authentication to your cluster’s management endpoint, in addition to client certificates. To learn how to set it up with your cluster, please see Create a Service Fabric cluster using Azure Active Directory for client authentication.

Additional health warnings for when the Cluster Resource Manager attempts to make a move in the cluster but that movement is repeatedly dropped

Previously these would be silently ignored or show up later as other health messages around failed placements and/or constraint violations.

Additional management actions in Service Fabric Explorer

You can now create new application instances from registered types directly from Service Fabric Explorer. You can also unprovision specific versions of a given application type. Both operations are available in the Essentials tab for the application type as shown below:

Runtime Bug fixes

Improved error handling when system service job queues were full

Previously operations received when the job queues were full would be silently dropped. Services will now return ServiceTooBusy and produce appropriate traces as warnings.

Fixed an error related to how deactivated nodes were considered during Cluster Resource Manager rebalancing runs

Previously the deactivated nodes would be considered when the Cluster Resource Manager was trying to determine whether the cluster was imbalanced or not. This has been corrected.

Improved handling of Affinity relationships during Upgrade

Previously during upgrades parent and child services in an affinity relationship may be moved to different nodes, causing a transient violation of the affinity policy. Now, when possible, Service Fabric will ensure that the parent and children are swapped to the same location. This primarily affected stateful services with aligned affinity (when the primaries were co-located).

Improved cluster capacity management for applications with Application Capacity defined

Previously when an application's Application Capacity was defined or updated, there was no checking around actual remaining capacity in the cluster. Now if there is an addition or increase in the desired reserved capacity for the application's load metrics but insufficient remaining resources in the cluster the increase will fail with an error message.

Added a useful error message for indicating that there was insufficient space on the drive to create the shared log

Previously various things would fail, resulting in FileNotFound exception and stateful replicas that use Reliable Collections would fail to start, however no real indication as to the problem. Now an improved error message informs you of lack of disk space.

Fixed a bug which was causing Blue Screen/Crashes when sleeping/waking machines

There is a safety check whereby we maintain leases between our kernel and user mode components in order to detect and react to user mode failures. However, the check was fairly aggressive for production and was causing developer machines to crash/bugcheck when they were slept/woken. This check has been disabled for the local development environment.

Fixed a bug where read operations on Reliable Collections were allowed to use transactions that had already been committed, aborted, or disposed

Reads using a transaction that have already been disposed will now result in an InvalidOperationException with the message "Transaction is not active".

Service Fabric SDK and NuGet packages

Features

RunAsync() cancellation delay now produces a warning health event

When the runtime requests RunAsync to cancel by signaling the cancellation token, RunAsync should end gracefully as soon as possible. If the cancellation token is not honored or cancellation is delayed, a warning health even will automatically be emitted to help diagnose situations where the cluster is unable to proceed with an operation because of an unresponsive RunAsync method.

Pre-Method and Post-Method events for Actor method calls

Two new callback events are available on the ActorBase class:

protected virtual Task OnPreActorMethodAsync(ActorMethodContextactorMethodContext);
protected virtual Task OnPostActorMethodAsync(ActorMethodContextactorMethodContext);

These methods are called before and after an actor interface method, timer method, or reminder method is invoked.

Start Menu Entry for Local cluster manager

We’ve made it easier to find and launch the local cluster system tray app by including a Start menu entry. The app will also automatically relaunch following a reboot.

SDK Bug fixes

The default Actor state provider does not clean up its back-up directory after taking backups, requiring manual clean-up

Back-ups are now automatically cleaned up by the default Actor state provider. Users are no longer required to manually clean up the back-up directory.

The Actor build tools should use a min replica set size of 3 for persistent and volatile state settings

When setting the persistence attribute to persistent or volatile for an actor, the build tools now use a min replica set size of 3 rather than 2. This avoids a rare edge case in which the replica set fails to stabilize after a specific sequence of node failures due to a race condition.

Fixed an API bug where System.Fabric.Query.ApplicationLoadInformation.Name was publicly settable

This field is provided by the platform and should not have been publicly settable.

Visual Studio Tools for Service Fabric

Features

ASP.NET Core 1 RC2 Project Template

Based on the RC2 release of ASP.NET Core 1.0, we have reintroduced a service Fabric project template to quickly get you up and running developing services using ASP.NET Core 1.0.

Application Debug Mode

To speed up local debugging, we have introduced an Application Debug Mode in Visual Studio as a property to the Service Fabric application project. There are two modes, Remove (default) and Auto Upgrade. While in Remove mode, Visual Studio removes your application when you finish your debugging session. In Upgrade mode, the application will not be removed and when you start your next debug session Visual Studio will instead upgrade the application. See screen shot below

The Preserve Data on Start mode, has been removed, as Application Debug Mode = Auto Upgrade has adopted this behavior. If your application project was set to Preserve Data on Start = Yeswhen you upgrade your project, Visual Studio will convert the value to Application Debug Mode = Auto Upgrade.

Project Template Extensibility

We have enabled you to extend the "New Service" dialog with your own service project templates. Service templates are packaged as VSIX extensions to Visual Studio, enabling you to easily sign and share templates.

Guest Executables

We have made it easy for you to add a Guest Executable to your Service Fabric application project in Visual Studio. In the "New Service" dialog, you now have the option to choose a guest executable. You can choose either to copy the executable and dependencies to your project or to link to an executable, making it a dynamic inclusion of a guest executable. The guest executable will be packaged and deployed as part of your application.

To learn more about guest executables, including how to package one using Visual Studio, see Deploy a guest executable to Service Fabric.

Automated builds without Service Fabric SDK or Visual Studio Tools

To simplify setting up automated builds, we have published a NuGet package containing all that is required to build your Service Fabric application project.This means you can now build Service Fabric applications using a Visual Studio Team Services (VSTS) hosted build agent.
To learn how to set up a continuous integration system for your Service Fabric application project, see Set Up Continuous Integration for a Service Fabric Application.

Visual Studio Bug fixes

Default MinReplicaSetSize for stateful service partitions set to 3

Stateful service templates now use a MinReplicaSetSize of 3 by default. This avoids a rare edge case in which the replica set fails to stabilize after a specific sequence of node failures due to a race condition.

Microsoft Download Center Links for SDK and Tools

We recommend using the Web Platform Installer (UI or command line) to acquire the Service Fabric SDK. However, the direct links to the Runtime, SDK, and tools associated with this release are provided below should you need them. Note that these components must always be installed in that order (runtime, SDK, tools).

Runtime:

SDK:

Tools:

Service Fabric Standalone installer for Windows (Preview)

We now support three new features in the standalone installer

Add Nodes

Using AddNode.PS1, You can now add nodes to an existing cluster.

Remove Nodes

RemoveNode.PS1, you can now remove nodes safely from an existing cluster.

Secure Clusters

You can now create Secure clusters using x509 Certs or Windows Auth.

Details instructions for setting up a service fabric cluster on Windows Server is here.