SP2010: SPUpdatedConcurrencyException

Most SharePoint administrators will probably have seen this error once before. Usually you come across it while upgrading your SharePoint environment. SharePoint places locks on several objects to prevent multiple upgrade processes from running the same code on the same object simultaneously. In the upgrade log, it will state: “An update conflict has occurred, and you must re-try this action”. In most cases, the suggested solution is correct: the lock will be released and retrying will execute the upgrade.

But in some cases, the lock is persistent and the upgrade won’t run. Your ULS log will show you faults like:

“The configuration database was queried for a non-existent object
with the id 191eae26-0fe6-41c6-86e9-8356bf08d7df. Most commonly, this is caused
by removing an SPFeatureDefinition without writing upgrade code to remove
references to the feature from each site.”

And I’ve also seen this one:

“File system cache monitor encoutered error, flushing in memory cache: System.IO.InternalBufferOverflowException: Too many changes at once in directory:C:\ProgramData\Microsoft\SharePoint\Config\a3ba107d-367e-455a-8afa-d64b0a706d4a\.”

The first error tempts you to think about an illegal feature. This might be the problem, but it doesn’t have to be (that’s why I don’t like the error message). In some cases, the “lock” bit is stuck. SharePoint thinks stuff if being upgraded whilst it isn’t. The solution in these cases is super simple: reset the lock bit to it’s default unlocked state. You can do this with the following stsadm command:

stsadm -o setproperty -propertyname command-line-upgrade-running -propertyvalue No

 

When you have scripts guiding the upgrade of your SharePoint farms, you could consider putting the above command in, just before you run psconfig -cmd upgrade. The only thing you need to verify in that case is that your servers are being upgraded sequantially and not in parralel. And of course, when everything is running ok for you: don’t put in fixes for problems you don’t have. But the above command has worked for me a couple of times now, so it might do the trick for you too!

So when you run into these problems, try the following sequence:

  • Reboot the server (to free up any locked files)
  • Run the stsadm command above (to reset the “I’m already upgrading” bit)
  • Run the psconfig upgrade command

Leave a Reply

Your email address will not be published. Required fields are marked *