Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
I have a simplified load balanced setup of Umbraco 4.5 running on two servers, the umbraco file system exists on both servers (not using SAN) and IIS is configured such with 1 site with host headers:
The servers can access each other via these URLs and view the site. We have decided to access Umbraco directly via www1.domain.com only. This setup works fine, but of course when you make changes in Umbraco they don't show up on www2 site.
So now I did this in the umbracoSettings.config on both servers:
This worked perfectly, and when I publish it updates on both servers.
Then after a few days, it stopped working:
Error refreshing a node in the distributed list: 'System.Threading.ThreadAbortException: Thread was being aborted. . [ trimmed .... ] at umbraco.presentation.cache.CacheRefresher.EndRefreshById(IAsyncResult asyncResult)and Error refreshing distributed list: 'System.Threading.ThreadAbortException: Thread was being aborted. at umbraco.presentation.cache.dispatcher.InvokeDispatchMethod(DispatchType dispatchType, Guid factoryGuid, Int32 numericId, Guid guidId)'andAt /umbraco/webservices/cacheRefresher.asmx (Referred by: ):
If I change distributedCall to 'false' then it all works fine again. Changing it back to 'true' and it works for a short time and then happens again. If I change it to 'true' on server 1 only, then server 1 starts stalling but server 2 is unaffected.
Feel free to tell me this isn't a recommended setup, but if anyone knows how the distributedCall cache clearing works and has any idea why it would lock up the site..... that would be great!
In case anyone had this I will post the answer.
The problem was that I had distributedCall="true" on all the servers. It should only be "true" on the primary authoring server where Umbraco is used.
There is a bug in Umbraco 4 where during the processing of distributed call in the remote server for Refresh by ID of a media item, it calls "library.ClearLibraryCacheForMedia(Id);" which does this:
public static void ClearLibraryCacheForMedia(int mediaId)
dispatcher.Refresh(new Guid("B29286DD-2D40-4DDB-B325-681226589FEC"), mediaId);
So if you have distributed call enabled on the remote server it ends up calling itself in a never ending loop. I don't know at what point this changed but this is how it was in 4.5.0
Actually, this helped, but there were still errors on the authoring server.
Turns out this still had an infinite loop when saving media - fix is to not list the authoring server in the distributed calls config.
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted