hi, we are doing a "practice upgrade" from TFS 2015 RTM to TFS 2017, (for the second time), and seem to be running into a bug that crashes a collection upgrade. Bear in mind that there has only been time, so far to reproduce this issue
twice, and I will describe what seems to be the steps to reproduce it.
In both run-throughs, (using different collections, but getting the same error in the log when the crash occurred), it only occurred on the _first_ collection upgrade, and I suspect that you have to follow a particular pattern of upgrading in order to get
the crash. Since we always follow this pattern it has happened to us twice now.
First, establish a TFS 2015 RTM server with a few collections. When you upgrade to 2017, follow this pattern:
While on the old software detach all collections. Remove the application tier.
Install TFS 2017.
Configure the application Tier and let 2017 upgrade your configuration database.
Attach the first collection. Around steps 22-30 it has crashed with the following error at the tail end of the log:
[13:13:45.863] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[13:13:45.863] Executing step: Add the User Extension License for the attached collection
[13:13:45.863] Executing step: 'Add the User Extension License for the attached collection' ExtensionLicensing.CopyUserExtensionLicenseToConfigDb (693 of 994)
[13:13:45.880] Original Server Id: 1d9e3916-d1e4-4295-9bdd-2327b213e27b, Current Server Id : 1d9e3916-d1e4-4295-9bdd-2327b213e27b
[13:13:45.880] Copy user extension license data back to configuration database from snapshot
[13:13:45.897] Create temp user extension license table for attach
[13:13:46.100] Target partition Id: 1, Collection Id: d69b9ea1-a591-44d2-adb9-c622ab8e2b2c
[13:13:46.113] Getting tables. Table filter: tbl_UserExtensionLicense
[13:13:46.113] Getting indexes. Table filter: tbl_UserExtensionLicense
[13:13:46.520] Found 0 indexes. Table filter: tbl_UserExtensionLicense
[13:13:46.757] Found 0 tables. Table filter: tbl_UserExtensionLicense
[13:13:46.757] Getting tables. Table filter: tbl_TempUserExtensionLicense
[13:13:46.757] Getting indexes. Table filter: tbl_TempUserExtensionLicense
[13:13:47.413] Found 0 indexes. Table filter: tbl_TempUserExtensionLicense
[13:13:47.627] Found 1 tables. Table filter: tbl_TempUserExtensionLicense
[13:13:47.643] [Error] Object reference not set to an instance of an object.
[13:13:47.660] System.NullReferenceException: Object reference not set to an instance of an object.
[13:13:47.660] at Microsoft.VisualStudio.Services.Licensing.OnPremPlugins.ExtensionLicensingStepPerformer.BulkCopyUserExtensionLicense(ServicingContext servicingContext, IVssRequestContext sourceRequestContext, IVssRequestContext
targetRequestContext, Int32 targetPartitionId, Guid collectionId, String targetTableName)
[13:13:47.660] at Microsoft.VisualStudio.Services.Licensing.OnPremPlugins.ExtensionLicensingStepPerformer.CopyUserExtensionLicenseToConfigDb(IVssRequestContext targetRequestContext, ServicingContext servicingContext)
[13:13:47.660] at Microsoft.TeamFoundation.Framework.Server.TeamFoundationStepPerformerBase.PerformHostStep(String servicingOperation, ServicingOperationTarget target, IServicingStep servicingStep, String stepData, ServicingContext
servicingContext)
[13:13:47.660] at Microsoft.TeamFoundation.Framework.Server.TeamFoundationStepPerformerBase.PerformStep(String servicingOperation, ServicingOperationTarget target, IServicingStep servicingStep, String stepType, String stepData,
ServicingContext servicingContext)
[13:13:47.660] at Microsoft.TeamFoundation.Framework.Server.TeamFoundationStepPerformerBase.PerformStep(String servicingOperation, ServicingOperationTarget target, String stepType, String stepData, ServicingContext servicingContext)
[13:13:47.660] at Microsoft.TeamFoundation.Framework.Server.ServicingStepDriver.PerformServicingStep(ServicingStep step, ServicingContext servicingContext, ServicingStepGroup group, ServicingOperation servicingOperation, Int32
stepNumber, Int32 totalSteps)
[13:13:47.660] Step failed: Add the User Extension License for the attached collection. Execution time: 1797 milliseconds.
[13:13:47.660] [StepDuration] 1.7979332
[13:13:47.673] [GroupDuration] 40.3609754
[13:13:47.673] [OperationDuration] 40.867523
[13:13:47.753] Clearing dictionary, removing all items.
In the first run-through, I restored the collection from backup, and created a new TFS_Configuration database. Then when I attached, the collection upgraded with no issue.
I have just discovered that all of my collections are crashing with this same error no matter how many times I restore the databases and attempt the upgrade. We are in trouble. At present I know of no way to get around this
anymore other than possibly to recreate the TFS_Configuration database.
I'll have to try that to see if it works. However, it leaves me unsure about possible permissions issues that might become unset as a result of doing this.
Any help would be appreciated.
Can you give me any insights or work-arounds on this issue?
Regards,
Steve Sims