Tuesday, December 1, 2015

AppFabric 1.1 KB3092423 – CU7 ( The AppFabric Caching service crashes intermittently with the following exception)

Microsoft has released Cumulative Update (CU) 7 for App Fabric 1.1 – KB3092423. The fine SharePoint folk out there know App Fabric as the SharePoint Distributed Cache. It is an important prerequisite that SharePoint 2013 & SharePoint 2016 require prior to installation. In fact, SharePoint security, performance and some social features heavily rely on the Distributed Cache working properly.
Cumulative Update 7 for App Fabric 1.1 has a fix for intermittent crashes and unexpected behaviour when managing the service.
Microsoft has reported the following three issues have been fixed with this Cumulative Update 7.
CU 7 is a requirement for SharePoint 2016. This is what I got when I tried to install SharePoint 2016:2015-11-25_18-55-08
App Fabric Cumulative Update 7 fixes the following issues:
Issue 1
The AppFabric Caching service crashes intermittently with the following exception:
{System.Runtime.CallbackException: Async Callback threw an exception. —> System.NullReferenceException: Object reference not set to an instance of an object.
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.CommunicationObject.EndOpen(IAsyncResult result)
at Microsoft.ApplicationServer.Caching.WcfServerChannel.OnOpen(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
— End of inner exception stack trace —
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
Issue 2
Note – May not apply in SharePoint as we use Stop-SPDistributedCacheServiceInstance –Graceful to gracefully stop a cache host.
When you run the Stop-CacheHost AppFabric PowerShell command together with the -Graceful switch (in SharePoint, we use), you can’t stop the cache host, and you receive the following error message:
Exception type: System.Collections.Generic.KeyNotFoundException
Message: The given key was not present in the dictionary.
InnerException: <none>
StackTrace (generated):
SP IP Function
000000001F28DAA0 000007FEF611C96F mscorlib_ni!System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib],[System.Boolean, mscorlib]].get_Item(System.__Canon)+0x4098ff
000000001F28DAD0 000007FF007A860B Microsoft_ApplicationServer_Caching_Management!Microsoft.ApplicationServer.Caching.AdminApi.CacheAdmin.GetNoOfNodesInServiceState(System.Collections.Generic.List`1<Microsoft.ApplicationServer.Caching.IHostConfiguration> ByRef, Microsoft.ApplicationServer.Caching.AdminApi.ProgressDelegate, Microsoft.ApplicationServer.Caching.AdminApi.ServiceStatus)+0xfb 000000001F28DBD0 000007FF007A83F1 Microsoft_ApplicationServer_Caching_Management!
Issue 3
Note – May not apply to how we work in SharePoint as we use Add-SPDistributedCacheServiceInstance to register a Cache host.
When you run the Register-CacheHost AppFabric PowerShell command, the command fails, and you receive the following error message:
Register-CacheHost : ErrorCode<PortAlreadyInUseError>:SubStatus<ES0001>:TCP port 22234 is already in use.
Note This failure generally occurs if the cache ports are bound to any IP address.

To check AppFabric version on your server, run this in PowerShell:
(Get-ItemProperty "C:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules\DistributedCacheConfiguration\Microsoft.ApplicationServer.Caching.Configuration.dll" -Name VersionInfo).VersionInfo.ProductVersion

So how do you go about applying Cumulative Updates to the SharePoint Distributed Cache (App Fabric 1.1)?
I have documented the manual steps here as there are many misleading blog posts out there. Feel free to copy this article and use this in your organisations Standard Operating Procedure (SOP) documents: http://www.jeremytaylor.net/2015/09/17/how-to-patch-sharepoint-distributed-cache-the-proper-way/

AppFabric 1.1 CU versions index:
RTM: 1.0.4632 (29-Nov-2011)
CU1: 1.0.4639 (20-Feb-2012) – KB2671763
CU2: 1.0.4644 (29-May-12) – KB2716015
CU3: 1.0.4652.2 (27-Nov-2012) – KB2787717
CU4: 1.0.4653.2 (28-Mar-2013) – KB2800726
CU5: 1.0.4655.2 (03-Mar-2014) – KB2932678
CU6: 1.0.4656.2 (27-Feb-2015) – KB3042099
CU7: 1.0.4657.2 (01- Sept-2015) – KB3092423