The Windows Servicing Guy

Tips and tricks from a Windows support engineer on issues related to servicing

Why you don’t want to edit your pending.xml to resolve 0xC0000034 issues

Why you don’t want to edit your pending.xml to resolve 0xC0000034 issues

  • Comments 222
  • Likes

I know that one of the workarounds everyone is using is editing the pending.xml file and rebooting the machine.  This is seemingly working for everyone that the SetupExecute registry value does not.  I wanted to give a brief rundown as to why you only want to do this as a last resort.

During service pack installation, we populate the pending.xml file with all of the files and registry values needed to install a particular update.  Service packs are special in that they are broken into critical and non-critical transactions to allow us to recover more quickly and reduce the no-boot window that could occur during installation.

During system shutdown, we process all of the critical transactions first and then the non-critical transactions.  If we fail processing the critical transactions, the service pack will just fail and rollback.  If the critical operations succeed but the non-critical operations fail, we attempt to process them on reboot using Session Manager (smss) and the SetupExecute registry value.  When the system reboots and reads the SetupExecute key, it retries installation first and if that fails it will roll back the Service Pack installation.  Deleting the registry value tells smss to not try and run the poqexec.  It should be reattempted again during startup processing or fail outright.  So effectively deleting the registry value breaks you out of the install fail reboot loop that the machine ends up being in.

Additionally, the pending.xml file has a checkpoint value that tells Windows where the critical transactions end and the non-critical transactions begin.  When you delete the checkpoint value in the pending.xml, its effectively marking everything in the pending operation queue as critical.  Because your machine has already rebooted, Windows thinks it has nothing to do and just boots normally.  The problem with this is that because there are still operations that need to be processed that will not get processed and this could potentially leave the machine in an even worse state. Doing this should be an absolute last resort. The best thing to do here is let the failure occur later on so a rollback can take place.

--Joseph

Comments
  • Now you tell us?!

  • It takes time to triage these things and find out what everyone is doing.  I cant back test every method someone uses to recover from a failure and posted this as soon as I had more information about the problem.

  • Okay, but if we don't edit the XML file, the system never boots normally, and is useless.  It never fails the install, or rolls back.  How do we get around this without editing the XML file?  I have several PCs at clients who have experienced this issue.

  • Well for one this bug should have never made it past Microsoft.  Two they need to provide a fix for us that HAD to do this because it was critical to get people back up and running.  Finally, even the official Microsoft fix of deleting the registry entry still screws the system up because it thinks SP1 is installed, but it isn't.

  • @Bret:  You can use the hack if you're in dire circumstances, just be aware of what its doing.  People are going to have different behaviors depending on where the servicing operations were when the problems occurred.

    @Phil:  Aside from a small percentage of machines, the registry value always forces a rollback.  I have yet to see a post registry change result in the appearance that SP1 is installed but have seen some that people have gotten config errors post reboot.

  • Forgot to give the website for Microsoft's fix.

    support.microsoft.com/.../en-us

    You can't use method 1 because the Service Pack wipes out all the system restores (nice feature).

    Method 2 says it rolls it back after you reboot, but if you right click computer and go to properties SP1 shows it is loaded.  If you look under add/remove it is nowhere.  If you try to reload SP1 manually you will get an error and you can get the code from the event viewer. "Service Pack installation failed with error code 0x800f0a13"

    I have about 15 machines so far that are like this.

  • Phil;

    The KB link is in my main C34 article.

    So you used method 2 and recreated the registry key and the machines did not roll back?  Can you upload your CBS directory to a skydrive or share I can hit?

    --Joseph

  • It says it rolls back and then you get the message that the SP failed to install, but WIndows is confused after that and like I mentioned, manual install of SP1 will not work after that.

  • This blog entry is something for the trash without undelete.

    It is useless to say "don't do this" without offering an working alternative if you have several bosses entering which say that they cannot work any more.

    It is useless to say "let the error occur and let it roll back" if that does not happen.

    It is useless to say "go back to last system restore point" if it does not exist since SP1 miraculously kills the restore points if that error occurs (or it kills them before).

    This blog entry only proves the glass tower thinking without connection to reality, en.wikipedia.org/.../Marie_Antoinette ..

  • @Phil;  if you can get me logs from the machine then we can look over them

    @Joachim;  Just trying to be helpful here, if you find it useless, dont read it.  I think its pretty useful to know what is actually happening on your machine when you follow a specific course of action such as editing the pending.xml file.  If I dont post this, everyone would think they were in a "good" state when they clearly arent, if I dont post this then everyone would think we're trying to hide something.

  • @Joachim, too many out there are saying "oh edit pending.xml it will fix you up" when it doesn't.  This is a widely posted workaround.

    Personally the best advice I'm giving to folks is why?  Why install Sp1?  Do you need it?  Do you have a backup of your system before installing it?  What compelling reason do you need to install this service pack without having a backup of a system?  

  • Once you get the error you are stuck, there is no "wait for the failure to happen". The suggested workaround just got the machine up again, and get the service pack to roll back. The suggestions of replacing the registry hives also leaves the system unstable AND forces a roll back. So which is better? neither solution gets the SP installed.

  • In most of the instances I have worked on with this, using the registry to rollback and then reinstalling the standalone package allows the service pack to install properly

  • @Susan, I guess you are one of those that is still runing IE 6 too right?  You load a SP because it has new features and fixes.  I tested the SP on several machines in the office when it cames out and things were fine.  So when MS decided it was time to push the SP to a critical update, I said fine, I'll let my WSUS server push it out because I haven't had any problems in the office.  Little did I know (and anyone apparently) that if the user selected shutdown, which in Windows 7 automatically install updates that have been downloaded, that their machine would be rendered useless when they came in the next day.

  • "In most of the instances I have worked on with this, using the registry to rollback and then reinstalling the standalone package allows the service pack to install properly"

    It hasn't worked properly on any machine we have.  I'll try to get those logs to you today.