4

I have a long running ticket open with Sitecore, but am just looking for more ideas.

I have two brand new 9.1 CD servers in a Content Delivery role. The site can run fine for weeks. Then sometimes after an app pool reset both CD sites lock up. Meaning that if I lose CD1, I immediately lose CD2 site also. I have not found a way to get them back. I basically have to let them site for hours (12-24 hours) and the sites come back all by themselves. Then we wait again.

There is nothing in the logs or windows events to help me. The logs are full of "Starting Sitecore" logs, but no custom logs.

I would suspect it is my code, but when a site was recently locked, I replaces the site with a vanilla instance (dlls and app_config). Still was locked.

When I attach dotTrace, I get the image below. You can see there is no custom code. It gets to GetSites() and locks up.

enter image description here

Looking at the code in Kernel, there is a lock (this.lockObject) and I think it is locked by a previous call. I am really out of ideas.

public override List<SiteInfo> GetSites()
{
  List<SiteInfo> sites = this.sites;
  if (sites != null)
    return sites;
  lock (this.lockObject)
  {
    if (this.sites != null)
      return this.sites;
    List<SiteInfo> siteInfoList = new List<SiteInfo>();
    foreach (Site site in (Collection<Site>) SiteManager.GetSites())
    {
      SiteInfo siteInfo = new SiteInfo(site.Properties);
      siteInfoList.Add(siteInfo);
    }
    this.sites = siteInfoList;
    return siteInfoList;
  }
}
  • Have you checked other services logs (SQL Server, xconnect, CM, etc. ) at the time of the lock? Given both CDs go down at the same time I would think it is a shared resource locking. – Jason St-Cyr Mar 31 '19 at 4:19
  • SQL is in Azure, so not much for me to check there. Xconnect and Identity server logs are spotless. Maybe I need to wire shark it see if some traffic is getting hung. – Chris Auer Mar 31 '19 at 4:44
  • Are you using the Dynamic Sites Manager? If so could you eliminate that temporarily to aid diagnosis. – sitecorium Apr 2 '19 at 13:59
  • No site manager. Just normal old school configs. – Chris Auer Apr 2 '19 at 14:00
  • @ChrisAuer Sounds like kb.sitecore.net/articles/910936 We normally see this on Azure, but I have seen it on physical hardware as well. Unzip the patch into the webroot and if you're lucky, it will fix the problem. – Matthew FitzGerald-Chamberlain Apr 2 '19 at 22:20
3

No one is going to like this answer, but Sitecore resolved it by disabling FXM site manager. In the file App_Config\Sitecore\FederatedExperienceManager\Sitecore.FXM.config they removed the section below. It would seem that the FXM site manager was loading slowly and when the normal site manager would fire up it would dead lock on FXM. Randomly it would not and the site would run fine until the next app pool reset came along where it would start all over again.

No FXM for me.

<siteManager>
  <providers>
    <add name="sitecore" type="Sitecore.Sites.SitecoreSiteProvider, Sitecore.Kernel" checkSecurity="false">
      <providers hint="raw:AddProviderReference">
        <reference patch:after="reference[@name='config']" name="fxm" />
      </providers>
    </add>
    <!-- FXM SiteProvider to ensure all components in Sitecore are given external sites in the list of currently configured sites, 
         used mainly for analytics reporting.-->
    <add patch:after="add[@name='config']" name="fxm" type="Sitecore.FXM.Sites.FxmSiteProvider, Sitecore.FXM" checkSecurity="false" resolve="true" />
  </providers>
</siteManager>
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.