Tuesday 15 January 2013

Issue with SharePoint 2010 Farm Update

Hi all,

Today, I’m taking the time to solve my “Upgrade Available” issue in my production farm.

Last time, I’ve noticed that, after successfully upgraded my production farm, the status went back to “Upgrade Available” after being successful.
So, the binaries are 14.0.6117.5002


The status is now as on this screen below :

I know that I have 2 sites that gave me errors when upgrading my farm, but I used a workaround to be able to apply the Feb 2012 CU :
Backup/Delete/Restore of both faulty sites.

Step 1: let’s list the DB where are located those 2 sites

Central Administration => Upgrade and Patch Management => Review database status:



I google about this status “Database is up to date, but some sites are not completely upgraded”, and fount this link where I found 2 powershell lines to execute:

$DB = Get-SPContentDatabase -Identity DB_NAME
Upgrade-SPContentDatabase -id $DB

This must be done for each DB after having fixed the error.

To be honest, I used this Upgrade-SPContentDatabase command to check the resulting error log, and find the site, and the error type.

Step 2 : let’s check the error log and find the direction to look



Opening the “Upgrade-20130115-094410-390.log, then finding the first [ERROR] entry show this :


[powershell] [V2VRecordCenterUpgradeSiteAction (13.0.2.0)] [ERROR] [15/01/2013 09:44:14]: Failed to run V2VRecordCenterUpgradeSiteAction.Upgrade for SPWeb (http://shpteam.xxxxxxxx/sites/TTeamSite/backoffice), the following error occured:The specified name is already in use.

Please try again with a new name. at:   at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
   at Microsoft.SharePoint.Library.SPRequest.AddGroup(String bstrUrl, String bstrName, String bstrDescription, Int32 lOwnerID, Boolean bOwnerIsUser, UInt64 iPermMask, Int32 lUserId, Boolean bUseExisting, Boolean bSelfOwner)
   at Microsoft.SharePoint.SPGroupCollection.AddInternal(String name, SPMember owner, SPUser defaultUser, String description)
   at Microsoft.SharePoint.SPGroupCollection.Add(String name, SPMember owner, SPUser defaultUser, String description)
   at Microsoft.SharePoint.Utilities.SPUtilityInternal.CreateDefaultSharePointGroups(SPWeb web, String strUserLogin, String strUserLogin2, String strGroupNameSeed)
   at Microsoft.Office.RecordsManagement.Internal.DocumentRoutingFeatureReceiver.<>c__DisplayClass2.<FeatureActivated>b__0()
   at Microsoft.Office.Server.Utilities.CultureUtility.RunWithCultureScope(CodeToRunWithCultureScope code)
   at Microsoft.Office.RecordsManagement.Internal.DocumentRoutingFeatureReceiver.FeatureActivated(SPFeatureReceiverProperties properties)
   at Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce)
   at Microsoft.SharePoint.SPFeature.Activate(SPSite siteParent, SPWeb webParent, SPFeaturePropertyCollection props, Boolean fForce)
   at Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition featdef, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly)
   at Microsoft.SharePoint.SPFeatureCollection.AddInternalWithName(Guid featureId, String featureName, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly, SPFeatureDefinitionScope featdefScope)
   at Microsoft.SharePoint.SPFeatureCollection.Add(Guid featureId)
   at Microsoft.Office.Server.Upgrade.SiteAction.ActivateFeature(SPFeatureCollection features, Guid featureGuid, String featureScope, Boolean force)
   at Microsoft.Office.Server.Upgrade.SiteAction.ActivateFeatures(SPFeatureCollection features, Guid[] featureGuids, String featureScope)
   at Microsoft.Office.Server.DLC.Upgrade.V2VRecordCenterUpgradeSiteAction.UpgradeWeb(SPWeb web)


So, I had to go to the site, and I was not able to find the name that was already in use….

I google again , and find a post of Gayan Peiris with this little explanation :


In my case, the duplicate name was “Back Office”.

But, I was able to find only 1 “Back Office” site, the site mentioned into the error log.

Then, I decide to go to the root URL of this site “http://shpTeam.xxxxxxx/sites/TTeamSite”
I found then, that the mentioned “Back Office” name was a sub site of TTeamSite.

And, another “Back Office” site was already created, but with the “bo” name instead of “Back Office”.

Both sub sites had the same name, and this was the root cause of the issue.

I deleted the “Back Office” sub site, and got this situation:
  "Back Office" name is now used once.

Then, I’ve executed again the Upgrade-SPContentDatabase command, I my DB was successfully upgraded.

Now, here is the situation :

Step 3 : do the same steps as beginning, and solve the issue following the given error message in the log.

This is the error lines found on the log :
[powershell] [SPSiteWssSequence2] [ERROR] [15/01/2013 10:46:03]: Feature upgrade incomplete for Feature 'PublishingWeb' (Id: '94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb') in Web 'http://shpworkgroup.xxxxxx/sites/WWorkgroup'. Exception: Provisioning did not succeed. Details: Failed to provision role definitions. OriginalException: Value does not fall within the expected range.  (Inner Exception: Value does not fall within the expected range.)
[powershell] [SPSiteWssSequence2] [ERROR] [15/01/2013 10:46:03]: Feature upgrade incomplete for Feature 'PublishingWeb' (Id: '94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb') in Web 'http://shpworkgroup.xxxxxx/sites/WWorkgroup'. Exception: Dependency feature 'PublishingSite' (id: f6924d36-2fa8-4f0b-b16d-06b7250180fa) for feature 'PublishingWeb' (id: 94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb) is not activated at this scope.

So, I activate the features for this site :

stsadm -o activatefeature -filename publishingSite\feature.xml -url http://shpworkgroup.xxxxxx/sites/WWorkgroup -force
stsadm -o activatefeature -filename publishingWeb\feature.xml -url http://shpworkgroup.xxxxxx/sites/WWorkgroup -force



Then, let’s upgrade again the DB :

$DB = Get-SPContentDatabase -Identity DB_NAME
Upgrade-SPContentDatabase -id $DB

Looks nicer :





But, unfortunately, the status is still the same :



Checking the upgrade status via the stsadm command :
stsadm.exe -o localupgradestatus


So, all seems ok, except the CADM page.

Let’s recycle IIS :

Check the CADM page :

Voilà !

I can now plan the next step : run the SharePoint Products Configuration Wizard.


Job’s done.