If you haven’t heard by now, SQL Server Denali CTP3 (build 11.0.1440.19 if you are keeping track) is available for download on both 32- and 64-bit flavors. While I still don’t agree with a 32-bit version being released, it’s nice to be able to talk about something other than CTP1. I haven’t talked about Denali much because I’ve been under NDA with some private builds where I was lucky enough to preview some things, and with CTP3, I can finally talk about them – especially with regards to AlwaysOn availability groups. I won’t be addressing them in this first Denali-related post, though. I’ll be talking about something near and dear to my heart: failover clustering.

The installation of a clustered instance is similar to that of SQL Server 2008 and SQL Server  2008 R2. Things get a bit different on the Add Node operation, but that will be saved for another day.

SQL Server 2008 introduced the ability to create the resource group in the Windows failover cluster that will contain the clustered SQL Server resources. As long as the character was valid in the Windows failover cluster, you could also use it successfully in the SQL Server 2008 and SQL Server 2008 R2 installations with no problems. For example, when configuring a named instance which is really NETWORK_NAMENAMED_INSTANCE_PART, I would always name the group the same as the instance so it’s easy to identify in Failover Cluster Manager (or PowerShell in Windows Server 2008 R2). So if I install an instance with a network name of GRAND and a named instance of ILLUSION, I would use GRANDILLUSION. A sample is shown below in Figure 1.

Creating a resource group for use with SQL Server

Figure 1. Creating a resource group for use with SQL Server

However, a note of caution in SQL Server Denali’s installation related to this screen that could trip you up: do not use a backslash (). It will cause Setup to ultimately fail. It won’t be immediate. It will be most of the way through the install (unfortunately). When you get to the step cluster_group_cluster_config_Cpu64. You will see the error in Figure 2 if you are using the Setup user interface. Ironically as you can see, it creates the group just fine but can’t do anything else.

Setup filing

Figure 2. Setup failing when a slash is used.

This is what you will see in the log:
(01) 2011-07-12 15:28:39 Slp: SetValue: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server110ConfigurationState, Name = SQL_PowerShell_Engine_CNS
(01) 2011-07-12 15:28:39 Slp: Action “ConfigEvent_SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64_Install_Finalize_finalize” will return false due to the following conditions:
(01) 2011-07-12 15:28:39 Slp: Condition “Feature dependency condition for action: ConfigEvent_SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64_Install_Finalize_finalize The condition tests feature: SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64. There are 10 dependant features. The feature is tested for results: ValidateResult, Result, CleanupResult.” did not pass as it returned false and true was expected.
(01) 2011-07-12 15:28:39 Slp: Condition is false because the required feature SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 failed in result Result
(01) 2011-07-12 15:28:39 Slp: Action “cluster_group_cluster_finalconfig_Cpu64” will return false due to the following conditions:
(01) 2011-07-12 15:28:39 Slp: Condition “Feature dependency condition for action: cluster_group_cluster_finalconfig_Cpu64 The condition tests feature: SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64. There are 10 dependant features. The feature is tested for results: ValidateResult, Result, CleanupResult.” did not pass as it returned false and true was expected.
(01) 2011-07-12 15:28:39 Slp: Condition is false because the required feature SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 failed in result Result
(01) 2011-07-12 15:28:39 Slp: Action “ConfigEvent_MPT_AGENT_CORE_CNI_sql_engine_core_inst_Cpu64_Install_Finalize_finalize” will return false due to the following conditions:
(01) 2011-07-12 15:28:39 Slp: Condition “Feature dependency condition for action: ConfigEvent_MPT_AGENT_CORE_CNI_sql_engine_core_inst_Cpu64_Install_Finalize_finalize The condition tests feature: MPT_AGENT_CORE_CNI_sql_engine_core_inst_Cpu64. There are 2 dependant features. The feature is tested for results: ValidateResult, Result, CleanupResult.” did not pass as it returned false and true was expected.
(01) 2011-07-12 15:28:39 Slp: Condition is false because the required feature SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 failed in result Result
(01) 2011-07-12 15:28:39 Slp: Action “ConfigEvent_SQL_Replication_Core_Inst_sql_engine_core_inst_Cpu64_Install_Finalize_finalize” will return false due to the following conditions:
(01) 2011-07-12 15:28:39 Slp: Condition “Feature dependency condition for action: ConfigEvent_SQL_Replication_Core_Inst_sql_engine_core_inst_Cpu64_Install_Finalize_finalize The condition tests feature: SQL_Replication_Core_Inst_sql_engine_core_inst_Cpu64. There are 4 dependant features. The feature is tested for results: ValidateResult, Result, CleanupResult.” did not pass as it returned false and true was expected.
(01) 2011-07-12 15:28:39 Slp: Condition is false because the required feature SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 failed in result Result
(01) 2011-07-12 15:28:39 Slp: Action “ConfigEvent_SQL_FullText_Adv_sql_fulltext_Cpu64_Install_Finalize_finalize” will return false due to the following conditions:
(01) 2011-07-12 15:28:39 Slp: Condition “Feature dependency condition for action: ConfigEvent_SQL_FullText_Adv_sql_fulltext_Cpu64_Install_Finalize_finalize The condition tests feature: SQL_FullText_Adv_sql_fulltext_Cpu64. There are 3 dependant features. The feature is tested for results: ValidateResult, Result, CleanupResult.” did not pass as it returned false and true was expected.
(01) 2011-07-12 15:28:39 Slp: Condition is false because the required feature SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 failed in result Result


(01) 2011-07-12 15:29:10 Slp: Error result: -2032664561
(01) 2011-07-12 15:29:10 Slp: Result facility code: 1752
(01) 2011-07-12 15:29:10 Slp: Result error code: 15
(01) 2011-07-12 15:29:11 Slp: WER: Application level consent value ‘False’ was mapped to consent status ‘WerConsentDenied’
(01) 2011-07-12 15:29:12 Slp: WER: Result of the submission:: ‘WerDisabled’
(01) 2011-07-12 15:29:12 Slp: WER: Submitted 1 of 1 failures to the Watson data repository

BTW, I love the spelling of dependent (see bold). Although I’ll take bad spelling here since the verbose log is pretty good.

Anyway, the next time you go to run Setup, here’s what you will see on the instance screen as shown in Figure 3:

Instance Configuration dialog after the failure

Figure 3. Instance Configuration dialog after the Setup failure

What this means is simple: SQL Server Setup failed and didn’t clean up after itself as evidenced by the part I put in a red box. It thinks that the MOVINGPICTURES instance was installed. You can verify this by trying to install that instance again if you’re a masochist. You can see what that error looks like in Figure 4.

 

Trying to reinstall MOVINGPICTURES
Figure 4. Trying to reinstall MOVINGPICTURES

At this point, the logical thing is to run the uninstall procedure (remove a node) to get rid of the failed installation. Note the blank Network Name as shown in Figure 5.

Uninstalling the failed instance

Figure 5. Uninstalling the failed instance

This seems to work fine, but if you then go to install the instance and do not reboot, you will see the error in Figure 6 after it installs the Setup files. Uh oh! This one I need to file a bug on.

Error after uninstall and attempting reinstall

Figure 6. Error after uninstall and attempting reinstall

So I reboot to clear the proverbial decks. In looking around after the reboot, Setup does not clean up the MOVINGPICTURES group it created in the Windows failover cluster. You have to do that manually. Now, I’m not sure if it was the reboot or the deletion of the resource group, but you can install the instance if you re-run the first node installation as shown in Figure 7. Note that the shared files and utilities which I selected as part of the original install are still there. SQL Server only installs those files once, so at this point, it will just install the components for the instance. This is true of SQL Server 2008 and SQL Server 2008 R2 as well.

Clean Instance Configuration dialog after uninstall

Figure 7. Clean Instance Configuration dialog after uninstall

When done, you’ll wind up with an instance in a group with no backslash as shown in Figure 8.

MOVINGPICTURES finally installed

Figure 8. MOVINGPICTURES finally installed

You then decide since it’s 100% legal in Windows failover clustering to rename the group to be MOVINGPICTURES as shown in Figure 9. You should have no problems going forward, right? Wrong.

Adding the slash back into the resource group

Figure 9. Adding the slash back into the resource group

For example, If you try to install another instance of SQL Server things will seem fine for a bit. When you click Next on the Disk Space Requirements dialog, and it attempts to bring up the one for teh resource group, you will now fail with the error shown in Figure 10.

Setup fails

Figure 10. Another first node setup fails due to a slash ... but it's not obvious

It’s a cryptic message, but it stems from renaming the resource group and adding the backslash. Here’s what you see in the log:

(01) 2011-07-12 17:16:01 Slp: Error: Action “Microsoft.SqlServer.Configuration.UIExtension.WaypointAction” threw an exception during execution.
(01) 2011-07-12 17:16:01 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: Thread was being aborted. —> System.Threading.ThreadAbortException: Thread was being aborted.
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOneNative(SafeWaitHandle waitHandle, UInt32 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOne(Int64 timeout, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.Request.Wait()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.UserInterfaceProxy.NavigateToWaypoint(String moniker)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.WaypointAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    — End of inner exception stack trace —
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2011-07-12 17:16:01 Slp: Error: Action “Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction” threw an exception during execution.
(01) 2011-07-12 17:16:01 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: Thread was being aborted. —> System.Threading.ThreadAbortException: Thread was being aborted.
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOneNative(SafeWaitHandle waitHandle, UInt32 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOne(Int64 timeout, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.Request.Wait()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.UserInterfaceProxy.NavigateToWaypoint(String moniker)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.WaypointAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    — End of inner exception stack trace —
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream
(
01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2011-07-12 17:16:01 Slp: Error: Action “Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction” threw an exception during execution.
(01) 2011-07-12 17:16:01 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: Thread was being aborted. —> System.Threading.ThreadAbortException: Thread was being aborted.
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOneNative(SafeWaitHandle waitHandle, UInt32 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at System.Threading.WaitHandle.WaitOne(Int64 timeout, Boolean exitContext)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.Request.Wait()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.UserInterfaceProxy.NavigateToWaypoint(String moniker)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.UIExtension.WaypointAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    — End of inner exception stack trace —
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction.ExecuteAction(String actionId)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2011-07-12 17:16:01 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2011-07-12 17:16:05 Slp: Received request to add the following file to Watson reporting: C:UserscluadminAppDataLocalTemptmpBE77.tmp
(01) 2011-07-12 17:16:05 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
(01) 2011-07-12 17:16:05 Slp: Inner exceptions are being indented
(01) 2011-07-12 17:16:05 Slp:
(01) 2011-07-12 17:16:05 Slp: Exception type: System.Management.ManagementException
(01) 2011-07-12 17:16:05 Slp:     Message:
(01) 2011-07-12 17:16:05 Slp:         Invalid query
(01) 2011-07-12 17:16:06 Slp:     Stack:
(01) 2011-07-12 17:16:06 Slp:         at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
(01) 2011-07-12 17:16:06 Slp:         at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WMIInterop.NodeToActiveGroup.NodeToActiveGroupCollection.NodeToActiveGroupEnumerator.MoveNext()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.Cluster.WmiClusterGroup.get_OwnerNode()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.Cluster.ClusterGroup.get_OwnerNodeName()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.ClusterConfiguration.ClusterGroupPublicConfigObject.get_ClusterGroups()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.InstallWizard.ClusterGroupController.LoadGroup()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.InstallWizard.ClusterGroupController.Initialize()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.InstallWizardFramework.InstallWizardPageHost.SiteObject(Object pageController)
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.InstallWizardFramework.InstallWizardPageHost.CreatePageController(Type type)
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.PageHost.EnsurePageControllerExists()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.PageHost.get_Controller()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.PageHost.CreateView()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.PageHost.get_Control()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.HostControl.OnSelectedPageChanged(Object sender, EventArgs e)
(01) 2011-07-12 17:16:06 Slp:         at System.EventHandler.Invoke(Object sender, EventArgs e)
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.UIHost.OnSelectedPageChanged()
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.UIHost.set_SelectedPageIndex(Int32 value)
(01) 2011-07-12 17:16:06 Slp:         at Microsoft.SqlServer.Configuration.WizardFramework.NavigationButtons.nextButton_Click(Object sender, EventArgs e)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Control.OnClick(EventArgs e)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Control.WndProc(Message& m)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.ButtonBase.WndProc(Message& m)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Button.WndProc(Message& m)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
(01) 2011-07-12 17:16:06 Slp:         at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
(01) 2011-07-12 17:19:50 Slp: Watson Bucket 1
Original Parameter Values
(01) 2011-07-12 17:19:51 Slp: Parameter 0 : SQL Server “Denali” CTP3@CTP@
(01) 2011-07-12 17:19:51 Slp: Parameter 1 : System.Management.ManagementException.ThrowWithExtendedInfo
(01) 2011-07-12 17:19:51 Slp: Parameter 2 : System.Management.ManagementException.ThrowWithExtendedInfo
(01) 2011-07-12 17:19:51 Slp: Parameter 3 : System.Management.ManagementException@-2146233087
(01) 2011-07-12 17:19:51 Slp: Parameter 4 : System.Management.ManagementException@-2146233087

(01) 2011-07-12 17:19:51 Slp: Parameter 5 : GatherUserSettings
(01) 2011-07-12 17:19:51 Slp:
Final Parameter Values
(01) 2011-07-12 17:19:51 Slp: Parameter 0 : SQL Server “Denali” CTP3@CTP@
(01) 2011-07-12 17:19:51 Slp: Parameter 1 : 0xE8049925
(01) 2011-07-12 17:19:51 Slp: Parameter 2 : 0xE8049925
(01) 2011-07-12 17:19:51 Slp: Parameter 3 : 0x42B4DED7
(01) 2011-07-12 17:19:51 Slp: Parameter 4 : 0x42B4DED7
(01) 2011-07-12 17:19:51 Slp: Parameter 5 : GatherUserSettings
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREMicrosoftMicrosoft SQL Server to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Microsoft_Microsoft SQL Server.reg_
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREMicrosoftWindowsCurrentVersionUninstall to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Microsoft_Windows_CurrentVersion_Uninstall.reg_
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREMicrosoftMSSQLServer to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Microsoft_MSSQLServer.reg_
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREWow6432NodeMicrosoftMicrosoft SQL Server to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Wow6432Node_Microsoft_Microsoft SQL Server.reg_
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Wow6432Node_Microsoft_Windows_CurrentVersion_Uninstall.reg_
(01) 2011-07-12 17:20:01 Slp: Sco: Attempting to write hklm registry key SOFTWAREWow6432NodeMicrosoftMSSQLServer to file C:Program FilesMicrosoft SQL Server110Setup BootstrapLog20110712_170537Registry_SOFTWARE_Wow6432Node_Microsoft_MSSQLServer.reg_
(01) 2011-07-12 17:20:06 Slp: Invalid query
(01) 2011-07-12 17:20:06 Slp: Watson bucket for exception based failure has been created
(01) 2011-07-12 17:20:06 Slp: WER: Application level consent value ‘True’ was mapped to consent status ‘WerConsentApproved’
(01) 2011-07-12 17:20:06 Slp: WER: Result of the submission:: ‘WerDisabled’
(01) 2011-07-12 17:20:06 Slp: WER: Submitted 1 of 1 failures to the Watson data repository
(01) 2011-07-12 17:20:06 Slp:
(01) 2011-07-12 17:20:06 Slp: ———————————————————————-
(01) 2011-07-12 17:20:06 Slp:
(01) 2011-07-12 17:20:06 Slp: Error result: -1131919710
(01) 2011-07-12 17:20:06 Slp: Result facility code: 1160
(01) 2011-07-12 17:20:06 Slp: Result error code: 18082

This means that any resource group in the Windows failover cluster that has a backslash (or any other possible illegal character that Setup does not allow) will cause Setup to crash every single time on a first node install. Fun!

There are other potential implications such as the Add Node operation failing (something you definitely don’t want to happen) and possibly uninstall as well (I haven’t tested that one yet). Bottom line: avoid the backslash like the plague. It became almost a running joke for a month or two with the dev guys. A lot of my issues stem from this one cause.

I guess you are wondering why this now does not work if it did in both SQL Server 2008 and SQL Server 2008 R2. The reason is fairly simple: there has been a change in the underlying Setup code that relates to WMI, making a backslash an illegal character during Setup even though it is legal in Windows. I’ve bugged this in a build prior to CTP3 and hope they fix it by the time RTM happens. I’m not sure it’ll be possible. If you feel it’s important, too, let them know!