Thursday, December 4, 2008

Ouput Cache - Blob Cache fails when there are 10k+ items with custom permissions

Whenever you site has more that 10,000+ items which have custom permissions - meaning they dont inherit from parent site, your output caching would break. Following would be the log entry in event viewer. When blob cache is enabled images wont appear properly in the page and would exhibit random behavior.

[COMException (0x80004005): Cannot complete this action.Please try again.] Microsoft.SharePoint.Library.SPRequestInternalClass.GetAllAclsForCurrentSite(String bstrWebUrl, Int32 lMaxAcls) +0 Microsoft.SharePoint.Library.SPRequest.GetAllAclsForCurrentSite(String bstrWebUrl, Int32 lMaxAcls) +210[SPException: Cannot complete this action.Please try again.] Microsoft.SharePoint.Library.SPRequest.GetAllAclsForCurrentSite(String bstrWebUrl, Int32 lMaxAcls) +379 Microsoft.SharePoint.SPReusableAcl.GetAllReusableAclsForSite(SPSite site, Int32 maxAclsToReturn) +1185 Microsoft.SharePoint.SPSite.GetAllReusableAcls() +46 Microsoft.SharePoint.Publishing.<>c__DisplayClass3.b__0() +185 Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) +73 Microsoft.SharePoint.<>c__DisplayClass4.b__2() +599 Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) +309 Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) +583 Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) +146 Microsoft.SharePoint.Publishing.BlobCache.EnsureAuthenticatedRights(Guid siteID) +593 Microsoft.SharePoint.Publishing.BlobCache.RewriteUrl(Object sender, EventArgs e) +3745 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +177

Unfortunately no solution for this. Be watchful when working with item level permissions and avoid breaking the inheritance.

No comments: