Strange recycle problems

We upgraded from Sitecore 8.1 to 9.0 some weeks ago, and we moved to Azure PaaS. Since then we are suffering from application recycles in some of our instances.

Looking at event viewer, we saw tens of "recycles" of a concrete page due to "Global configuration changed" like the following in some of the instances

<Event>
<System>
<Provider Name="HttpPlatformHandler"/>
<EventID>2000</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>Keywords</Keywords>
<TimeCreated SystemTime="2018-12-12T06:32:29Z"/>
<EventRecordID>798817468</EventRecordID>
<Channel>Application</Channel>
<Computer>............</Computer>
<Security/>
</System>
<EventData>
<Data>Global configuration changed. Change path: MACHINE/WEBROOT/APPHOST/....WEBAPP__89A7/...../MyPage, ApplicationManager: 0000013AD53DFBB0 [TID 2516] [PID 7800]</Data>
</EventData>
</Event>
<Event>
<System>
<EventData>
<Data>Recycling application MACHINE/WEBROOT/APPHOST/....WEBAPP__89A7/...../MyPage [TID 2516] [PID 7800]</Data>
</EventData>

Even stranger, sometimes we saw a global configuration change on a concrete instance that cause recycles on  it. Being not this instance able to serve requests for some minutes (the others instance still working perfectly, only the recycle affects one instace).

<Event>
<System>
<Provider Name="HttpPlatformHandler"/>
<EventID>2000</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>Keywords</Keywords>
<TimeCreated SystemTime="2018-12-14T08:04:54Z"/>
<EventRecordID>1396347156</EventRecordID>
<Channel>Application</Channel>
<Computer>.........</Computer>
<Security/>
</System>
<EventData>
<Data>Change in global configuration [TID 3296] [PID 13784]</Data>
</EventData>
</Event>
<Event>
<System>
<Provider Name="HttpPlatformHandler"/>
<EventID>2000</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>Keywords</Keywords>
<TimeCreated SystemTime="2018-12-14T08:04:54Z"/>
<EventRecordID>1396347218</EventRecordID>
<Channel>Application</Channel>
<Computer>......</Computer>
<Security/>
</System>
<EventData>
<Data>Global configuration changed. Change path: MACHINE/WEBROOT/APPHOST/SITECORE-CD-WEBAPP__89A7, ApplicationManager: 00000216AA53FE90 [TID 3296] [PID 13784]</Data>
</EventData>
</Event>
<Event>
<System>
<Provider Name="HttpPlatformHandler"/>
<EventID>2000</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>Keywords</Keywords>
<TimeCreated SystemTime="2018-12-14T08:04:54Z"/>
<EventRecordID>1396347265</EventRecordID>
<Channel>Application</Channel>
<Computer>......</Computer>
<Security/>
</System>
<EventData>
<Data>Recycling application MACHINE/WEBROOT/APPHOST/SITECORE-CD-WEBAPP__89A7 [TID 3296] [PID 13784]</Data>
</EventData>
</Event>


Is anyone suffering a similar problem? Any idea what can cause a configuration change in a specific instance, not affecting the other ones?

Investigating the issue we found people experiencing similar problems with Sitecore 9 on Windows Server 2012, that can be fixed with a Windows update:

https://www.clearpeople.com/insights/blog/2018/november/sitecore-9-restarts-multiple-times-on-windows-2012.

But I wouldn't expect that Microsoft hadn't applied this hotfix to its Azure web apps.

Thanks!

  • I'm working on this problem as well right now. Will report back if I find anything, but please let me know if you already found a source for this issue.
  • In reply to Richard Hauer:

    We have seen very similar problems where Sitecore restarts on only one instance on 9.0 and 9.1 on Azure PaaS.
    We've gone through this with Azure Support and can see that the w3wp.exe process hasn't restarted on KUDU so it seems like more of a AppDomain recycle. There is no change to the PID in the examples we've looked at.
    Nothing shows in the App Restart Analysis in Azure.
  • In reply to Richard Hauer:

    Follow up

    According to blogs.msdn.microsoft.com/.../ there is a longish-standing issue with Azure Web App file system caching where changes in any folder (including App_Data) trip a middleware cache dump which in turn triggers the file watchers for both Sitecore and MVC dynamic compilation.

    It goes without saying that you should ship precompiled views - use RazorGenerator or some equivalent process.
    has a blog post that's a bit old but still relevant I think: kamsar.net/.../

    To disable the Azure disk caching middleware you need to set an Application Setting:

    WEBSITE_DYNAMIC_CACHE = 0

    There are some other tricks for modifying the applicationHost.config using XDT - read about that here: blogs.msdn.microsoft.com/.../

    Again, the link is old but still relevant I believe.