Friday, October 16, 2009

KB970892 fails relentlessly

10-31-09 Update: an anonymous comment provided a simple solution. See the newer posts in this blog.

Most of the time I never have any trouble with Patch Tuesday. But this time I got a consistent failure: KB970892 fails to install every time. So as a result, I have little yellow shield with a ! in it on the taskbar - every day.

SQL Server 2005 express edition was installed by ACT 2009 last year on this XP system. Internally the SQL Configuration Util calls it Act 7. Anyway, the install log says this when it gets to the error:

"Error 29565, Product Microsoft SQL Server 2005 Express Edition. SQL Server Setup cannot upgrade the specified instance because the previous upgrade did not complete. Start the Remote Registry service and go to Add/Remove Programs, select the Change button for Microsoft SQL Server 2005, and then select SQL instance ACT7 and complete the setup."

Whatever. I went to control panel - add/remove programs and started to do this but stopped (chickened out - will do system backups before trying this). Then I went to MS's site and downloaded the KB patch manually and ran it. During the install/patch process it said to stop the process for ACT7 - I did it, but the patch still failed.

Internet searches show that other people are having the same problem, but I can't see a definitive solution. Does anyone have a solution?

35 comments:

Anonymous said...

I can't guarantee that this will work for everyone, but it worked for me. Different users are probably experiencing this error for different reasons. Without analyzing anyone's system, I cannot recommend any particular course of action; but I can share what worked for me after other posts on the topic failed.

I checked Add/Remove Programs in Control Panel and found no mention of "SQL Server 2005" or "Microsoft SQL Server 2005." Since I seemed to remember uninstalling SQL services after uninstalling Visual Studio 2005, I suspected leftover files to be the reason the update was attempted but didn't install. Since I didn't see any program that needed SQL, I (i) typed "services.msc" at the Run prompt and stopped all SQL services (i.e. by right-clicking them and clicking Stop), (ii) made a copy of the "SQL Server" folder in My Documents from the "Program Files" directory in case deleting it should present a problem, (iii) deleted the "SQL Server" folder from the "Program Files" directory, and (iv) used a registry cleaner to efficiently remove over 400 dead links left in the registry. The system restarted without any difficulty, and all programs seem to work without difficulty. I am no longer prompted to install the update, all SQL services (i.e including that which did not work anyway) are now absent, and any security risk that might have existed due to a partial uninstallation should be gone. Registry cleaners are available at http://www.downloads.com, with which I am not affiliated: if you use Registry Mechanic, you should enable deep registry cleaning, but this requires a serial.

One possible cause is that uninstalling a program and then using System Restore causes Add/Remove Programs to no longer show the program though all system files other than those in My Documents are restored.

I hope this helps at least some of you.

v/r,
George Evers
http://www.georgeevers.org

Anonymous said...

I had this problem as well. I had my sql services disabled since i wasn't using them anymore. I re-enabled the services (and started them for good measure) and the patch went through successfully.

Anonymous said...

I am having the same issue. This is happening on 5 of my servers. I have the services enabled. I found some information somewhere that you have to go to add/remove programs and do "change" on your sql 2005 installation. Go through the installer and choose to finish the suspended installation. It will ask for a SQLRUN_SQL.msi file. They said to get it from the SQL 2005 Express installation package but it would not take it for me as i have Service Pack 3 installed. I can not find a standalone SQL 2005 installer that includes SP3 so i cannot get the correct SQLRUN_SQL.MSI file that the installer is requesting. This patch has seemingly hosed up SQL 2005 on at least 5 of my servers and I am livid. What a monday!

Anonymous said...

In the same boat and need help. . .

Anonymous said...

After this happened, I went to the Windowsupdate.com website and went to do a custom install of the updates. I checked the box to not install this update and then it did not ask me after I went through the update process.
The yellow shield did pop up one more time, but I suspect that is because it did not get word that it was not need because it was already in the update queue.

Anonymous said...

Hi,
I have been having the same problem however I found a post on the net saying to change a registry key from 1 to 0 and install the patch - this has worked for me...

1. Go to Run, type regedit, and click ok, or press Enter.
2. Back up your registry, if you don't know how to do this, google it...
3. In Regedit, go to [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\MSSQL.1\Setup]
[Note that if you have multiple instances of MSSQL installed, the reg key
might be different for you]
4. find the Resume REG_DWORD, and change its decimal value from 1, to 0.
5. install the update, and restart the machine.

J

Anonymous said...

The registry fix worked for me. Had to make it in 2 places. Great work!

Atanas said...

Just tried it and it worked for me too :-)
Many thanks!

Anonymous said...

Failure
Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB970892_sqlrun_sql.msp.log
SQL Express Features :
Error Number : 29528
Error Description : MSP Error: 29528 The setup has encountered an unexpected error while Installing performance counters. The error is: The specified driver is invalid.

While attempting to install KB970892 I continually get the above error report. Can you tell me how to correct this. Thks

Kirk Thomas said...

Try the registry change outlined above. I'm going to try them tonight after hours. It certainly sounds promising!

Stever said...

Registry editing failed for me XP 32 Bit machine. It stops the service and then just hangs there. I canceled the install after about 20 minutes of it just sitting there with the cursor blinking. I've noticed that the service stops every so often over the last couple of days. SP3 is installed.

Stever said...

Okay, I take it back. It installed, but go figure: after about 15 minutes I hit cancel. I then went to the Configuration Manager and started the service. About 2 minutes later the installer said it was installed and to reboot. I rebooted and just checked the Add/Remove Programs with Updates checked and there it was..KB970892 installed today! The gold shield is gone and the service is running. As I said, go figure.

The Towel Boy said...

Wow. Just wow. That Registry change did the trick for me. THIS WAS DRIVING ME INSANE!!!

The Towel Boy said...

The registry fix did the trick for me. THIS HAS BEEN DRIVING ME INSANE!! All the crap I've been trying to get this stupid update to install and all it took was to change a 1 to a 0. Good lord.

Anonymous said...

The Reg change worked for me!
Thanks!

Anonymous said...

Dude! Good job, thanks Mr. Anonymous for the timely tip.

Anonymous said...

Reg change did not work for me however I'm using SQL express that was installed with my copy of ACT software.

There was NO key in the ACT7 registry labeled resume so I created one.

KB970892 still fails and my SQL ACT7 service stops.

Short of removing the update from WSUS I'm not sure what to do.

Kirk Thomas said...

To the last comment: you are not looking the right place. It's not in the ACT7 registry area - it's in the SQL Server registry area.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\MSSQL.1\Setup

Anonymous said...

I don't seem to have MSSQL.1 in my registry for Microsoft SQL Server. I have the following folders:
90
Portfoliocenter
SQLXML4

Any ideas where I might look for MSSQL.1?

Kirk Thomas said...

To the person who does not have MSSQL.1/Setup: do any of those keys have Setup? do any of those keys have the Resume value under Setup?

Anonymous said...

For those still suffering this problem... it appears that in some cases this may be related to security requirements in the install. This means that if you are running a local SQL instance with a simple password (perfectly normal if you aren't exposing to any external network/s)
If you suspect this is relevant to your case, follow the instructions found at http://davehope.co.uk/Blog/kb970892-fails-to-install/ (shamelessly linked, all credit to the relevant author/s) to assist you in changing the password to satisfy these requirements before completing the update process. I hope this helps somebody!

Anonymous said...

Same here - I have SQL Server Express and that registry key is not on my system. Also, I'm running Windows 7, but I had this same problem before upgrading from Vista. There is nothing named Setup in the registry, and nothing named Resume.

I read something from an Microsoft forum moderator to install the update manually in safe mode. I went to the trouble of booting into Safe Mode and it still didn't work. On the plus side, I got more detailed error messages. Still don't know how to fix it, though. I'll try googling the errors.

Here are the error messages:

Log Location: C:\Program Files (x86)\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB970892_sqlrun_sql.msp.log

Unable to install Windows Installer MSP file

From log:
--------------
=== Verbose logging started: 11/13/2009 20:53:23 Build type: SHIP UNICODE 5.00.7600.00 Calling process: e:\139628206c4f98234212cfa4\hotfix.exe ===
MSI (c) (60:AC) [20:53:23:745]: Resetting cached policy values
MSI (c) (60:AC) [20:53:23:745]: Machine policy value 'Debug' is 0
MSI (c) (60:AC) [20:53:23:745]: ******* RunEngine:
******* Product: {2AFFFDD7-ED85-4A90-8C52-5DA9EBDC9B8F}
******* Action:
******* CommandLine: **********
MSI (c) (60:AC) [20:53:23:745]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (60:AC) [20:53:23:745]: Grabbed execution mutex.
MSI (c) (60:AC) [20:53:23:760]: Failed to connect to server. Error: 0x8007043C

MSI (c) (60:AC) [20:53:23:760]: Failed to connect to server.
MSI (c) (60:AC) [20:53:23:760]: MainEngineThread is returning 1601
=== Verbose logging stopped: 11/13/2009 20:53:23 ===

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

Anonymous said...

I found it! The key is in a different place on 64-bit systems. it's here:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\Setup set Resume REG_DWORD=0.

It is installing as I type this.

Anonymous said...

Never mind. It failed, even with the registry change. :(

Kirk Thomas said...

Thanks to that last poster. Just to clarify our previous posts about the registry location have been for 32 bit systems. On 64 bit systems it is a slightly different location:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL.1\Setup set Resume REG_DWORD=0

Thanks!

Kirk Thomas said...

FYI, on my vista 64 machine that DID accept the patch, the resume value is at zero in that wow6432Node

Anonymous said...

Well, I finally did get it to update (really, this time - it says "success"), and it did not require any registry tweaks. Microsoft has an info page for this update:

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

On that page it warns that the update will fail if the server is in a disabled state. Apparently it will also fail if the server is set to start automatically but hasn't started.

I ran "service.msc" (type on "Run" command line), scrolled down to SQL Server, and started the service. Then I went back and ran the update again.

It gave me two options of things to run this against: SQL Server Database Services 2005 and SQL Server Tools & Workstation Components 2005. I didn't know which to choose so I checked both. It failed against the first one (the database), but succeeded against the second, which I guess is the component it was for.

I'm pretty sure that if I'd started SQL Server and then run this from Windows Update (instead of the manual install I did) that it would have worked. I think the unstarted server was the problem.

To those who "solved" the problem by getting Microsoft to stop offering the patch... BAD IDEA. If you don't stay on top of security updates, evil people can reach into your computer.

Anonymous said...

I too HAD the problem trying to install the SQL Server 2005 security update. One post I read on this blog tipped me to what might be wrong: I had stopped one of the SQL Server services a while ago. It was related to a HP Jet Admin (HPJA) utility that was installed on my PC. I restarted the service and ran the update successsfully! My thanks to Anonymous (10/17) for the wonderful help!

Anonymous said...

Thanks for x64 registry key path! I was pulling my hair out looking for it and scrolled down and there was my answer. Installed successfully finally. Now on to the next server!

digimetic said...

more thanks to the October 23, 2009 6:23 AM poster. worked like a charm!

Tracy said...

The regedit change from 1 to 0 worked! Bye, bye little annoying yellow shield! Oh, happy day! Thank you anonymous!

Betty said...

I changed the registry as suggested...after four months of unsuccessfully trying, the shield is finally gone! Thank you so much for your suggestion!!

Scott said...

I went in to change value from 1 to 0 and it was already at 0. No luck. Tried changing other values in those areas one at a time and all at once and nothing worked. Have started all service so I'm lost as to what to try now...

Scott said...

I went in to change value from 1 to 0 and it was already at 0 in 64 bit address location. Changed other values one at a time and tried install too and not luck. Changed them all at once and no luck. Now back to where they were to begin with. Have restarted all service as well. What do I try now???

Anonymous said...

Great thread! The suggestion about starting all possible MSSQL instances in services fixed me up. Way to go!