Welcome to MSDN Blogs Sign in | Join | Help
How to put the Installer Cache back together for SQL following

Step by Step Instructions on how to put the Installer Cache back together for SQL following “Unable to install Windows Installer MSP file” errors 1612 1635 1642 1646

Technorati Tags: ,,,,,

Background:

To give a little background as to how the files arrive in C:\Windows\Installer you will see that the file names all appear to be random in nature, which they are! They are placed there when you install using Windows Installer and will be a copy of the MSP or MSI file that is being executed. For components like the SQL Engine, where you have potentially many instances, you will have many copies of the MSI and MSP files. From one machine to another the file names will be different.

Fixing the issue:

The copy of the MSI/MSP files are required when applying a later fix, if they are lost or missing the setup of the later fix will fail. The solution is to put the C:\Windows\Installer directory back together. It is a good idea to check why the file isn’t there, usually you won’t know, but it the reason is that the C:\Windows\Installer directory has been deleted you might want to give up now....

The following example was using log files from an SP3 failure, you’ll notice that not all components failed, in this case the failure was restricted to Tools and Database Engine.

Step 1:

Establish what went wrong, looking in the Summary will indicate which component failed for example (I’ve taken some entries out to make this a little easier to understand), you can see here that two components have failed, the database engine and also Client components

Time: 11/10/2009 06:01:42.225

KB Number: KB955706

Machine: WMSI002461

OS Version: Microsoft Windows Server 2003 family, Enterprise Edition Service Pack 2 (Build 3790)

Package Language: 1033 (ENU)

Package Platform: x86

Package SP Level: 3

Package Version: 4035

Command-line parameters specified:

/quiet

/allinstances

Cluster Installation: No

**********************************************************************************

Prerequisites Check & Status

SQLSupport: Passed

**********************************************************************************

Products Detected Language Level Patch Level Platform Edition

Setup Support Files ENU 9.3.4035 x86

Database Services (MSSQLSERVER) ENU SP2 2005.090.3077.00 x86 ENTERPRISE

SQL Server Native Client ENU x86

SQL Server Native Client ENU 9.00.4035.00 x86

Client Components ENU SP2 9.2.3077 x86 ENTERPRISE

MSXML 6.0 Parser ENU x86

SQLXML4 ENU x86

SQLXML4 ENU 9.00.4035.00 x86

Backward Compatibility ENU x86

Backward Compatibility ENU 8.05.2312 x86

Microsoft SQL Server VSS Writer ENU x86

Microsoft SQL Server VSS Writer ENU 9.00.4035.00 x86

**********************************************************************************

Products Disqualified & Reason

Product Reason

**********************************************************************************

Processes Locking Files

Process Name Feature Type User Name PID

msftesql Database Services Service NT AUTHORITY\SYSTEM 1368

**********************************************************************************

Product Installation Status

Product : Setup Support Files

Product Version (Previous): 4035

Product Version (Final) :

Status : Not Selected

Log File :

Error Number : 0

Error Description :

----------------------------------------------------------------------------------

Product : Database Services (MSSQLSERVER)

Product Version (Previous): 3077

Product Version (Final) :

Status : Failure

Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB955706_sqlrun_sql.msp.log

Error Number : 1635

Error Description : Unable to install Windows Installer MSP file

----------------------------------------------------------------------------------

Product : SQL Server Native Client

Product Version (Previous):

Product Version (Final) : 4035

Status : Success

Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\Redist9_Hotfix_KB955706_sqlncli.msi.log

Error Number : 0

Error Description :

----------------------------------------------------------------------------------

Product : SQL Server Native Client

Product Version (Previous): 4035

Product Version (Final) :

Status : Not Selected

Log File :

Error Number : 0

Error Description :

----------------------------------------------------------------------------------

Product : Client Components

Product Version (Previous): 3077

Product Version (Final) :

Status : Failure

Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQLTools9_Hotfix_KB955706_sqlrun_tools.msp.log

Error Number : 1635

Error Description : Unable to install Windows Installer MSP file

----------------------------------------------------------------------------------

Product : MSXML 6.0 Parser

Product Version (Previous):

Product Version (Final) : 6.10.1129.0

Status : Success

Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\Redist9_Hotfix_KB955706_msxml6.msi.log

Error Number : 0

Error Description :

----------------------------------------------------------------------------------

Product : SQLXML4

Product Version (Previous):

Product Version (Final) : 4035

Status : Success

Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\Redist9_Hotfix_KB955706_sqlxml4.msi.log

Error Number : 0

Error Description :

----------------------------------------------------------------------------------

**********************************************************************************

Summary

One or more products failed to install, see above for details

Exit Code Returned: 1635

Step 2:

We know which components have failed, and if you look at the Summary, also which log file to look into, its worth saying that I’ve seen this error reported at various times against all of the components, the principle behind the solution is the same. Now we’ll start with the Client Components and look into the file

C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQLTools9_Hotfix_KB955706_sqlrun_tools.msp.log

We can see the following

MSI (s) (EC:88) [06:01:52:772]: APPCOMPAT: looking for appcompat database entry with ProductCode '{4D2DFB70-AECB-47BF-A895-3B3AA544934F}'.

MSI (s) (EC:88) [06:01:52:772]: APPCOMPAT: no matching ProductCode found in database.

MSI (s) (EC:88) [06:01:52:772]: MSCOREE not loaded loading copy from system32

MSI (s) (EC:88) [06:01:52:787]: Opening existing patch 'C:\WINDOWS\Installer\d044b686.msp'.

MSI (s) (EC:88) [06:01:52:787]: Note: 1: 2203 2: C:\WINDOWS\Installer\d044b686.msp 3: -2147287038

MSI (s) (EC:88) [06:01:52:787]: Opening existing patch 'C:\WINDOWS\Installer\d044b686.msp'.

MSI (s) (EC:88) [06:01:52:787]: Note: 1: 2203 2: C:\WINDOWS\Installer\d044b686.msp 3: -2147287038

MSI (s) (EC:88) [06:01:52:787]: Couldn't find local patch 'C:\WINDOWS\Installer\d044b686.msp'. Looking for it at its source.

MSI (s) (EC:88) [06:01:52:787]: Resolving Patch source.

MSI (s) (EC:88) [06:01:52:787]: User policy value 'SearchOrder' is 'nmu'

MSI (s) (EC:88) [06:01:52:787]: User policy value 'DisableMedia' is 0

MSI (s) (EC:88) [06:01:52:787]: Machine policy value 'AllowLockdownMedia' is 0

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Media enabled only if package is safe.

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Looking for sourcelist for product {88591C3A-E392-4B2C-98B7-F123862FD540}

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Adding {88591C3A-E392-4B2C-98B7-F123862FD540}; to potential sourcelist list (pcode;disk;relpath).

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Now checking product {88591C3A-E392-4B2C-98B7-F123862FD540}

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Media is enabled for product.

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Attempting to use LastUsedSource from source list.

MSI (s) (EC:88) [06:01:52:787]: SOURCEMGMT: Trying source d:\058c7b9c5aded2721b9b421ebce7\HotFixTools\Files\.

MSI (s) (EC:88) [06:01:52:803]: Note: 1: 2203 2: d:\058c7b9c5aded2721b9b421ebce7\HotFixTools\Files\sqlrun_tools.msp 3: -2147287037

MSI (s) (EC:88) [06:01:52:803]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.

MSI (s) (EC:88) [06:01:52:803]: Note: 1: 1706 2: -2147483647 3: sqlrun_tools.msp

MSI (s) (EC:88) [06:01:52:803]: SOURCEMGMT: Processing net source list.

MSI (s) (EC:88) [06:01:52:803]: Note: 1: 1706 2: -2147483647 3: sqlrun_tools.msp

MSI (s) (EC:88) [06:01:52:803]: SOURCEMGMT: Processing media source list.

MSI (s) (EC:88) [06:01:53:834]: SOURCEMGMT: Resolved source to: 'sqlrun_tools.msp'

MSI (s) (EC:88) [06:01:53:881]: Note: 1: 1314 2: sqlrun_tools.msp

MSI (s) (EC:88) [06:01:53:881]: Unable to create a temp copy of patch 'sqlrun_tools.msp'.

MSI (s) (EC:88) [06:01:53:881]: Note: 1: 1708

MSI (s) (EC:88) [06:01:53:881]: Note: 1: 2729

MSI (s) (EC:88) [06:01:53:881]: Note: 1: 2729

MSI (s) (EC:88) [06:01:53:881]: Product: Microsoft SQL Server 2005 Tools -- Installation failed.

MSI (s) (EC:88) [06:01:53:912]: MainEngineThread is returning 1635

This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.

C:\WINDOWS\Installer\eb2d173.msi

MSI (c) (D8:24) [06:01:53:912]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1

MSI (c) (D8:24) [06:01:53:912]: MainEngineThread is returning 1635

=== Verbose logging stopped: 09-11-2009 06:01:53 ===

I’ve highlighted the significant line that shows us which file is missing

'C:\WINDOWS\Installer\d044b686.msp'

Step 3:

Searching the registry to confirm where the file that is lost came from so we search for d044b686.msp

We find it here

clip_image002

This doesn’t tell us much what we really need to know is which patch the missing MSP relates to so now we search for the Key Name

A3C19588293EC2B4897B1F3268F25D04

We find it first here

clip_image004

And also

clip_image006

So the missing file in this case is from the SP2 installation.

You will also see that there are a number of other keys below Patches, if you look at these they are for

GDR 3054

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\07BFD2D4BCEAFB748A59B3A35A4439F4\Patches\12695E170C2778943BDB5A3E4EF86872

GDR 3068

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\07BFD2D4BCEAFB748A59B3A35A4439F4\Patches\16A1D4CC9588CF24CA22720F01CC0674

GDR 3077

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\07BFD2D4BCEAFB748A59B3A35A4439F4\Patches\7FC9E76BBED538E49A1DD9D51F351CEF

SP1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\07BFD2D4BCEAFB748A59B3A35A4439F4\Patches\AE08B0AA93391F14192734DE512DD3F3

GDR 2050

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\07BFD2D4BCEAFB748A59B3A35A4439F4\Patches\DCFCFE0773BB0D64DBAFB0B8DF2321A3

If you search for the Patch GUID (in the case of 3054 this is 12695E170C2778943BDB5A3E4EF86872

You will be taken to the file name that should exist in C:\Windows\Installer

clip_image008

Approaches to fixing the issue

Approach A:

We know that the MSP file for SP2 is missing, so we could simply do the following

1) Download SP2

2) Unpackage SP2 using the /X option, this extracts the contents of SP2 to a directory

3) Copy the file sqlrun_tools.msp to the C:\Windows\Installer directory under the name d044b686.msp

Approach B:

1) Download *all* the patches that are listed

2) Unpackage them all using the /X option

3) Copy all the sqlrun_tools.msp files to their respective names in C:\Windows\Installer

If we go for approach A there is a chance that one of the other files may be missing and prevent the setup from working, on the up-side its a bit quicker.

Approach B is going to take longer, in that you will have to find all the file names and also download all of the fixes.

I went through the whole process for this server and I made a list of the failed components and the patches required with their names

Tools: sqlrun_tools in directory ...\hotfixtools\files

SP1 1cc85cf8

2050 d044b424

SP2 d044b686

3054 506f360

3068 63634544

3077 515eef2

Database: sqlrun_sql in directory ...\hotfixsql\files

SP1 1cc85bb2

2050 d044b40c

SP2 d044b532

3054 506f353

3068 63634537

3077 515eee5

So now its just a case of coping these files into the C:\windows\installer directory and re-running the service pack or hotfix.

Now the above addresses situations where the msp files are missing, however it is also possible to see situations where there is a missing MSI file, in this situation the file missing is the original install package rather than a hotfix/service pack, but the same principal applies it is simply a case of locating the original install MSI and coping it into the C:\Windows\Installer directory, however the file name is now found in a different place in the registry for example

clip_image010

Be careful freeing space on your C Drive......leave C:\Windows\Installer alone

It has been a while since I posted, but here is a very quick tip, not 100% SQL related but it certainly applies to SQL Server installations after SQL2005.

You might notice that in the C:\Windows\Installer directory you have got lots and lots of files, over time you can end up with potentially giga bytes in there. This directory is used as a cache for MSI or MSP files used for installations of software that use Windows Installer. Now for SQL you get a new file for each instance installed, so you may well end up with multiple copies of the same file, fortunatly when files are copied into this directory they are assibned a random file name. Also when you start applying hotfixes and service packs they also ent cached, so you can probably see that this directory is going to grow quite large.

DO NOT delete the files from this directory, if you do, you probably won't notice anything until you have a hotfix or service pack to apply to SQL its going to fail if it can't locate the cached files from previous patches or the original media.

 

SQL Starting issue on X64 clusters due to Scrap registry keys impacting Browser

A recent issue I saw was that the SQl service would not come on line on an x64 cluster. my prefered method of looking at cluster failovers / failure to start is to first look at the errorlog.
This is to a large part to get aquainted with the server and see if anything is apparent from there. Clearly if there's no errorlog to look through we are a little stuck. But on this occasion there was. We could see the following

The bottom of the errorlog looked like this

2009-01-24 07:09:08.21 spid19s     Service Broker manager has shut down.
2009-01-24 07:09:08.49 spid11s     SQL Server is terminating in response to a 'stop' request from Service Control Manager. This is an informational message only. No user action is required.
2009-01-24 07:09:08.49 spid11s     SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.

In addition I couldn't see any nasty looking errors or stack dumps so the conclusion here is that for some reason the cluster service could not connect to the SQL instance to run its IsAlive check.

So at this point its time to change attack and look at the application event log or cluster log, you can take your pick which you choose but I generally start with the application event log, I then search for the following string [sqsrvres]
So why do I do that, well sqsrvres.dll is the name of the resource dll for the SQL Server resource, when it logs errors this string will be somewhere in the line.

I find the following in the application event log


20/01/2009 23:31:20 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] checkODBCConnectError: sqlstate = 08001; native error = ffffffff; message = [Microsoft][SQL Native Client]SQL Network Interfaces: Error getting enabled protocols list from registry [xFFFFFFFF].
"
20/01/2009 23:31:20 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] ODBC sqldriverconnect failed
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] checkODBCConnectError: sqlstate = 08001; native error = ffffffff; message = [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] ODBC sqldriverconnect failed
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] checkODBCConnectError: sqlstate = HYT00; native error = 0; message = [Microsoft][SQL Native Client]Login timeout expired
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] ODBC sqldriverconnect failed
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] checkODBCConnectError: sqlstate = 08001; native error = ffffffff; message = [Microsoft][SQL Native Client]SQL Network Interfaces: Error getting enabled protocols list from registry [xFFFFFFFF].
"
20/01/2009 23:31:00 MSSQL$SQL1 Error (3) 19019 N/A TESTSQL2 "[sqsrvres] ODBC sqldriverconnect failed
"

So this looks nasty, checking the tip that we might not allow remote connections, this is not the cause.But there is also some suggestion of inpropriety in the registry. Additionally from the client side we may have an issue with the browser service causing us not to be able to find the SQL instance.

Firther down in the registry we can see the following

20/01/2009 23:30:34 SQLBrowser Information None 12 N/A TESTSQL2 The SQLBrowser service has started.
20/01/2009 23:30:34 SQLBrowser Information None 16 N/A TESTSQL2 The SQLBrowser is enabling SQL instance and connectivity discovery support.
20/01/2009 23:30:34 SQLBrowser Warning     None 3   N/A TESTSQL2 The configuration of the AdminConnection\TCP protocol in the SQL instance WEB1 is not valid.

Now I had seen a couple of previous cases where the above was observed, and this is what we found.
As you may know part of the registry is replicated for the SQL resource so that each node is kept up to date. However on the impacted cluster we have the following

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\Cluster]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\CPE]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLSERVER]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\PROVIDERS]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\Replication]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\SQLserverAgent]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\SQLServerSCP]

Now the significant thing here is the WOW6432 part, these keys are junk keys, as they exist (as expected) in the normal part of the registry, the WOW6443Node is for compatability. So the simple solution is to remove these keys (after backing up the registry etc etc....)

Once that is done and SQL and the browser service restarted things should be working a lot better again

Cluster Administrator fails with 5079 Gathercl.dll not found on Upgraded clusters

The server in question was once a SQL2000 cluster and had been upgraded by some means to SQL2005, following this when opening Cluster Administrator the following error is displayed immediately.

cluadmin

An error occurred attempting to read properties for the 'Microsoft Search Service Instance' resource type: The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node.

The error reported looks very much like the problem reported in article:

http://support.microsoft.com/kb/298147

You receive an "Invalid Class String" error when SQL Server connects to a Cluster Server through the Cluster Administrator

Which suggests that a DLL called 'Gathercl.dll' is missing.

Running FileMon does indeed show that the process ResrcMon.exe is looking for the above file and cannot find it -> from filemon:

119         02:41:13 PM       ResrcMon.exe:3892        QUERY INFORMATION  C:\WINDOWS\Cluster\gathercl.dll           NOT FOUND                Attributes: Error

But Gathercl.dll does not exist on other SQL2005 clusters either and they don’t have problems.

Now here is where we need to take a sanity check, there was a change between SQL2000 and SQL2005 with regard to the resource type for Full Text Search, in SQL2000 there was a custom resource DLL called …. GATHERCL.DLL, but in SQl2005 this changed and the Full Text search since this cluster was originally SQL2000 and has been upgraded we can assume that there is something that has not been tidied up as it should.

The resource types are listed in the following registry key

                HKLM\Cluster\ResourceTypes

The scrap  be removed using standard cluster.exe commands:

http://technet.microsoft.com/en-us/library/cc723245.aspx

CLUSTER [cluster name] RESOURCETYPE [resource type display name] /Delete /Type

/Delete [/Type]

Delete a resource type. If the resource DLL cannot be accessed by the Cluster Service, specify the resource type name with the /Type option instead of specifying the resource type display name

Once this is done there should be no problem in opening Cluster Administrator.

How to successfully perform an Edition Upgrade of Notification Services

To follow up on my last post.....a similar issue occurs when performing an edition upgrade to Notification Services, same error codes are returned but this time against the NS component. Checking the registry / file versions also reflect the same situation as before. The solution as you can guess is very simiar to that used for SSIS, but this time the file we are replacing is

NSService.exe

This lives in the ..\Program Files\Microsoft SQL Server\90\NotificationServices\9.0.242\bin directory

When I get some time I'll check out the remaining components and see what the score is with them

 

How to successfully perform an Edition Upgrade of SSIS

When performing an edition upgrade on SSIS Service Pack 2 + Cumulative Update  its best to uninstall the CU *before* you run the edition upgrade, this will avoid some issues that can occur when following the upgrade you come to re-apply Service Pack 2 and Cumulative Update.

So what happens if you don’t ?

Taking the following example, Integration services is installed and patched to SP2 + a hotfix, take as an example the 3050 GDR build. We then attempt an edition upgrade of SSIS , by running the following command from the cmd prompt.

Start /wait setup.exe ADDLOCAL=SQL_DTS UPGRADE=SQL_DTS SKUUPGRADE=1 /qb

Following the upgrade if you look at the following registry key HKLM\Software\Microsoft\Microsoft SQL Server\90\dts\setup

The version indicated is 9.0.1399.06, but the key file for Integration Services MSDTSSRVR.EXE has a version property indicating  9.0.3050.00

This causes us issues when we try and apply SP2 because the key file is later than SP2, it would be invalid to attempt to apply SP2 since this would be going to an earlier version, you will see the following in the summary file

Time: 12/15/2008 16:27:39.382

KB Number: KB921896

Machine: AP1111245CC

OS Version: Microsoft Windows Server 2003 family, Enterprise Edition Service Pack 2 (Build 3790)

Package Language: 1033 (ENU)

Package Platform: x86

Package SP Level: 2

Package Version: 3042

Command-line parameters specified:

Cluster Installation: No

 

**********************************************************************************

Prerequisites Check & Status

SQLSupport: Passed

 

**********************************************************************************

Products Detected                         Language  Level  Patch Level       Platform  Edition

Setup Support Files                       ENU                     9.2.3042  x86      

Database Services (MSSQLSERVER)           ENU       SP2    2005.090.3042.00  x86       STANDARD

Database Services (STD1)                  ENU       SP2    2005.090.3299.00  x86       ENTERPRISE

Notification Services                     ENU       SP2       9.00.3299.00  x86       STANDARD

Integration Services                      ENU       RTM       9.00.3050.00  x86       ENTERPRISE

SQL Server Native Client                  ENU                 9.00.3042.00  x86      

MSXML 6.0 Parser                          ENU                  6.10.1129.0  x86      

SQLXML4                                   ENU                 9.00.3042.00  x86      

Backward Compatibility                    ENU                    8.05.2004  x86      

Microsoft SQL Server VSS Writer           ENU                 9.00.3042.00  x86      

 

**********************************************************************************

Products Disqualified & Reason

Product                                   Reason

Database Services (MSSQLSERVER)           This installation must be run from the active node. You are running it from a passive node. To proceed, cancel the installation and run it again from the active node.

Database Services (STD1)                  The product instance STD1 been patched with more recent updates.

Notification Services                     The product instance NS been patched with more recent updates.

Integration Services                      The product instance Integration Services been patched with more recent updates.

 

**********************************************************************************

Processes Locking Files

Process Name          Feature               Type          User Name                  PID

 

 

**********************************************************************************

Summary

     All product instances were disqualified

     Exit Code Returned: 11300

 

So we can’t get SP2 installed so lets try a later hotfix....it fails too L, this time when we look at the summary file we see the following

Time: 12/15/2008 16:29:04.434

KB Number: KB960110

Machine: AP1111245CC

OS Version: Microsoft Windows Server 2003 family, Enterprise Edition Service Pack 2 (Build 3790)

Package Language: 1033 (ENU)

Package Platform: x86

Package SP Level: 2

Package Version: 3299

Command-line parameters specified:

Cluster Installation: No

 

**********************************************************************************

Prerequisites Check & Status

SQLSupport: Passed

 

**********************************************************************************

Products Detected                         Language  Level  Patch Level       Platform  Edition

SQL Server Database Services 2005 (MSSQLSERVER)  ENU       SP2    2005.090.3042.00  x86       STANDARD

SQL Server Database Services 2005 (STD1)  ENU       SP2    2005.090.3299.00  x86       ENTERPRISE

SQL Server Notification Services 2005     ENU       SP2       9.00.3299.00  x86       STANDARD

SQL Server Integration Services 2005      ENU       RTM       9.00.3050.00  x86       ENTERPRISE

 

**********************************************************************************

Products Disqualified & Reason

Product                                   Reason

SQL Server Database Services 2005 (MSSQLSERVER)  This installation must be run from the active node. You are running it from a passive node. To proceed, cancel the installation and run it again from the active node.

 

**********************************************************************************

Processes Locking Files

Process Name          Feature               Type          User Name                  PID

MsDtsServer           Integration Services  Service                                  1392

 

**********************************************************************************

Product Installation Status

Product                   : SQL Server Database Services 2005 (MSSQLSERVER)

Product Version (Previous): 3042

Product Version (Final)   :

Status                    : NA

Log File                  :

Error Description         : This installation must be run from the active node. You are running it from a passive node. To proceed, cancel the installation and run it again from the active node.

----------------------------------------------------------------------------------

Product                   : SQL Server Database Services 2005 (STD1)

Product Version (Previous): 3299

Product Version (Final)   :

Status                    : Not Selected

Log File                  :

Error Number              : 0

Error Description         :

----------------------------------------------------------------------------------

Product                   : SQL Server Notification Services 2005

Product Version (Previous): 3299

Product Version (Final)   :

Status                    : Not Selected

Log File                  :

Error Description         :

----------------------------------------------------------------------------------

Product                   : SQL Server Integration Services 2005

Product Version (Previous): 3050

Product Version (Final)   :

Status                    : Failure

Log File                  : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\DTS9_Hotfix_KB960110_sqlrun_dts.msp.log

Error Number              : 1642

Error Description         : Unable to install Windows Installer MSP file

----------------------------------------------------------------------------------

 

**********************************************************************************

Summary

     One or more products failed to install, see above for details

     Exit Code Returned: 1642

 

So the hotfix won’t apply because SP2 is a pre-requisite and based on the registry information (9.00.1399.06) we are at RTM.

So no way forward and no way back.

The method to workaround this issue is to

1)      On a dummy server install Integration Services (Enterprise edition)

2)      Stop  SSIS services on both the ‘broken’ server and the dummy server.  

3)      Copy an RTM version of  MSDTSRVR.EXE into the program files directory to "C:\Program Files\Microsoft SQL Server\90\DTS\Binn\" on the ‘broken’ server.

4)      Apply SP2

5)       Apply hotfix.

As a side note the above would work equally well with an SP2  (build 3042) version of MSDTSRVR.EXE.

 

SQL2005 hotfix fails with "MSP Error: 29512 SQL Server Setup was unable add user"

This is quite a strange situation I've seen when applying SP2 or hotfix to a SQL2005 cluster, reviewing the Summary.txt file the failure is something like this...

----------------------------------------------------------------------------------
Product                   : Database Services (INST2)
Product Version (Previous): 1399
Product Version (Final)   :
Status                    : Failure
Log File                  : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB921896_sqlrun_sql.msp.log
Error Number              : 29512
Error Description         : MSP Error: 29512  SQL Server Setup was unable add user Administrator@W2K3LAB.com to local group W2K3LAB\Domain Admins.
----------------------------------------------------------------------------------

If we do as we are told and look in SQL9_Hotfix_KB921896_sqlrun_sql.msp.log we see the following

<Func Name='LaunchFunction'>
Function=Do_sqlGroupMember
<Func Name='GetCAContext'>
<EndFunc Name='GetCAContext' Return='T' GetLastError='0'>
Doing Action: Do_sqlGroupMember
PerfTime Start: Do_sqlGroupMember : Thu Nov 27 17:04:08 2008
<Func Name='Do_sqlGroupMember'>
Local group W2K3LAB\Domain Admins doesn't exist
Failure adding user Administrator@W2K3LAB.com to local group W2K3LAB\Domain Admins (2221)
        Error Code: 0x800708ad (2221)
Windows Error Text: The user name could not be found.
  Source File Name: sqlca\sqlsecurityca.cpp
Compiler Timestamp: Wed Jun 14 16:27:11 2006
 

Now I should point out that on my test system here the groups I specified for the SQL services during setup were all Domain Admins so you are probably not going to be quite that lazy on a production server :-)

The significant thing here is to notice the format of the user we are trying to add rather than the usual format w2k3lab\administrator we are seeing Administrator@w2k3lab.com

This is a relativly easy one to sort out by simply changing the adminstrator account back to w2k3lab\administrator and re-running setup. I'd recommend using  SQL Server Configuration Manager to make this change. I found that Configuration Manager didn't actually validate accounts correctly if they were in the wrong format, reporting a password failure, I was only able to set the account to the 'bad' format using  Services.

 

Another SQL blogger

Following some encouragement from colleagues I've finally started this blog. I am not going to say that the focus if the blog is going to be in any one area of SQL, but  a lot of my time is spent focused on clustering / high availability so am expecting a high proportion of posts in that area.

Service Pack / Hotfix setup failures with SQL2000 clusters

I thought I'd share a very strange setup issue that we've seen a number of times both with Service Pack 4 and Hotfix installation.

When applying SP4 for SQL2000 the setup fails with the usually cryptic message about setup failing on a remote node. When you inspect the at the sqlsp log where setup was initiated we see something like this...

.....

CRemoteProcess::RunUntilComplete [0xac] error code: -1

CThreadPool::RunUntilCompleteHlpr WaitForMultipleObjects returned: 0

CThreadPool::RunUntilCompleteHlpr signaled thread [0xac]

Thread [0xac] exit code: [0xffffffff]

CRemoteProcess::RunUntilComplete [0xbc] exit code: 3010

Remote process exit code was '3010' (xxxxxxxxx1).

CThreadPool::RunUntilCompleteHlpr WaitForMultipleObjects returned: -1

CThreadPool::RunUntilCompleteHlpr signaled thread [0xbc]

Thread [0xbc] exit code: [0xffffffff]

CRemoteProcess::RunUntilComplete [0xa8] exit code: 3010

Remote process exit code was '3010' (xxxxxxxxx2).

CThreadPool::RunUntilCompleteHlpr WaitForMultipleObjects returned: -1

CThreadPool::RunUntilCompleteHlpr signaled thread [0xa8]

Thread [0xa8] exit code: [0xffffffff]

CProcess::RunUntilComplete [0xa4] exit code: 3010

Remote process exit code was '3010' (xxxxxxxxx3).

CThreadPool::RunUntilCompleteHlpr WaitForMultipleObjects returned: -1

CThreadPool::RunUntilCompleteHlpr signaled thread [0xa4]

Thread [0xa4] exit code: [0xffffffff]

CThreadPool::RunUntilComplete returned -1

CThreadPool::RunUntilComplete execution level=1, need execution: 0

One or more errors occurred while running the remote/unattended setups.

Disconnecting from remote machine (xxxxxxxxx4)...

........

18:53:52 End Action : Run setup on cluster nodes

18:53:52 One or more errors occurred while running remote setup on the clustered

machines.

18:54:59 Setup failed to perform required operations on the cluster nodes.

18:54:59 End Action : ClusterSetupHelper

18:54:59 Begin Action : LogEvent

18:54:59 End Action : LogEvent

18:54:59 Begin Action : CloseEventLog

18:54:59 End Action : CloseEventLog

 

Now we can ignore the 3010 result codes, these just indicate that a reboot is required.

On the remote node we get no log file generated.

We do see some rather cryptic message in the event log on the remote node

Information 26 25/6/2006 9:15:20

Application Popup xxxxxxxxx4 None

N/A

Application popup: remsetup.exe - Unable To Locate Component :This application has failed to start because cnvrem.dll was not found. Re-installing the application may fix this problem.

Information 26 25/6/2006 9:11:58

Application Popup xxxxxxxxx4 None

N/A

Application popup: remsetup.exe - Unable To Locate Component : This application has failed to start because cnvrem.dll was not found. Re-installing the application may fix this problem.

The above would explain why we don't get a log generated on the failing node since the remote setup didn't run.

Monitoring file access on the failing server the following was observed

cnvsvc3.exe:1980 QUERY

INFORMATION \\W000012004\admin$\PSAPI.DLL SUCCESS FileBasicInformation

3195 6:50:19 µµ cnvsvc3.exe:1980 CLOSE \\xxxxxxxxx4\admin$\PSAPI.DLL SUCCESS

3196 6:50:19 µµ cnvsvc3.exe:1980 OPEN \\xxxxxxxxx4\admin$\PSAPI.DLL IS DIRECTORY Options: Open Access: All

3197 6:50:19 µµ cnvsvc3.exe:1980 OPEN \\xxxxxxxxx4\admin$\PSAPI.DLL IS DRECTORY options: Open Access: Execute

Now PSAPI.DLL is returning 'IS DIRECTORY' true, inspecting the directories on the machine we found that there was indeed a directory

C:\Windows\PSAPI.DLL

This is an unusuall name for a directory to say the least, further searching on the C drive found valid PSAPI dlls so simply renaming the dirrectory C:\Windows\PSAPI.DLL to C:\Windows\xPSAPI.DLL was all that was required to allow the setup program to successfully complete.

A very similar issue occurs when you apply hotfixes, the log will look something like this

151.141: SQL DLL: BeforeInstallOps() returned 0

151.266: ================================================================================

151.266: 2008/08/29 17:12:53.184 (local)

151.266: f:\487f6b6fa9aa74ddc2\i386\update\update.exe (version 6.2.29.0)

151.266: SpawnInstancesForInstall: InstRetVal1 = 0x80

151.266: SQL DLL: Entered callback FailedInstallation()

151.266: SQL DLL: Instance Status Summary

151.281: SQL DLL: Instance Status: MSSQLServer - Failure

151.281: SQL DLL: Instance Status: SQLTools - Success

151.610: SQL DLL: Watson: Param1 = Unknown

151.610: SQL DLL: Watson: Param2 = 0x80

151.610: SQL DLL: Watson: Param3 = Unknown

151.610: SQL DLL: Watson: Param4 = 0x0

151.610: SQL DLL: Watson: Param5 = Unknown

151.610: SQL DLL: Watson: Param6 = Unknown

151.610: SQL DLL: Watson: Param7 = SQLServerClient

151.610: SQL DLL: Watson: Param8 = Update.exe@6.2.29.0

151.610: SQL DLL: Watson: Param9 =

151.610: SQL DLL: Watson: Param10 = 2275

151.610: SQL DLL: FailedInstallation() returned 128

151.610: DoInstallation: FailedInstallation Failed: 0x80

164.938: Message displayed to the user: An error in updating your system has occurred.

164.938: User Input: OK

Again the solution remains to rename/remove the offending directory.

-------------------------------------------------------------------------------------------------------------------------------------------------------

UPDATE:

This incorrect directory name can also cause failure of standalone installs.....

 

Page view tracker