Occasionally, when browsing to these sites, the web parts won't display. The error is:
Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator. (Correlation ID provided)
Doesn't tell me much. I took the correlation ID and trawled through my SharePoint logs. I found this exception:
Error while executing web part: System.StackOverflowException: Operation caused a stack overflow. at Microsoft.Xslt.NativeMethod.CheckForSufficientStack() at <xsl:template match="FieldRef[@ListItemMenu]" name="FieldRef_Menu_PrintFieldWithECB" mode="PrintFieldWithECB">(XmlQueryRuntime , XPathNavigator , XPathNavigator , Double ) at <xsl:template match="FieldRef" name="FieldRef_printTableCell_EcbAllowed" mode="printTableCellEcbAllowed">(XmlQueryRuntime , XPathNavigator , XPathNavigator , String ) at <xsl:template match="Row" mode="Item">(XmlQueryRuntime , XPathNavigator , IList`1 , IList`1 , Double , Double ) at <xsl:template match="View" mode="RenderView">(XmlQueryRuntime , XPathNavigator ) at <xsl:template match="View" mode="full">(XmlQueryRuntime , XPathNavigator , String ) at <xsl:template match="View" name="View_Default_RootTemplate" mode="RootTemplate">(XmlQueryRuntime , XPathNavigator , String ) at <xsl:template match="/">(XmlQueryRuntime ) at Root(XmlQueryRuntime ) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer, Boolean closeWriter) at System.Xml.Xsl.XmlILCommand.Execute(IXPathNavigable contextDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter results) at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results) at Microsoft.SharePoint.WebPartPages.DataFormWebPart.ExecuteTransform(XslCompiledTransform xslCompiledTransform, XsltArgumentList xmlArguments, Boolean bDeferExecuteTransform) at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
A bit of Googling took me to a Technet post (http://social.technet.microsoft.com/Forums/en-US/sharepointgeneralprevious/thread/1a38bdff-e40a-4e50-a2e8-47cbcb31cc6b/) which suggested that this issue may be caused by a timeout issue. By default, the timeout setting is set to one second, which (in my opinion) isn't very generous. The following PowerShell command checks the current timeout setting:
$farm = Get-SPFarm
$farm.XsltTransformTimeOut
To change this to five seconds, which is more reasonable:
$farm = Get-SPFarm
$farm.XsltTransformTimeOut = 5
$farm.Update()
My hesitation with any sort of farm update is that this will cause an IIS recycle or other temporary downtime. Fortunately, this had no effect that I could see. I've not seen the Web Part error since.