Configuring Windows Updates stage stops at 15 percent completion – Reverting changes

For an extended time we are trying to install Windows Updates on our machines, but this always fails with error message Failure configuring Windows Updates. Reverting changes when the system reboots. In case all the update rolling back and you are back to no update installed. This happens typically if you install Windows 2012 Core from DVD and try to install all the available Microsoft hotfixes. After a few months with Microsoft this has been escalated MS internally and they identified coldfusion.exe has an open file handle on TTF font files. It looks like Microsoft does not add the TTFs to pending files for rename list and just replace them on reboot from my point of view.

After lot of digging we found an interfering process that causes an update failure of tahomabd.ttf, see C:\Windows\Logs\CBS\CBS.log on the affected machine:

2015-01-07 23:35:11, Info                  CBS    DriverUpdateInstallUpdates failed [HRESULT = 0x80070bc2 - ERROR_SUCCESS_REBOOT_REQUIRED]
2015-01-07 23:35:11, Info                  CBS    Doqe: System reboot required.
2015-01-07 23:35:11, Info                  CBS    Perf: Doqe: Install ended.
2015-01-07 23:35:11, Info                  CBS    Shtd: Non-critical driver operations completed successfully.
2015-01-07 23:35:11, Info                  CBS    Setting ExecuteState key to: CbsExecuteStatePrimitives [2]
2015-01-07 23:35:11, Info                  CBS    SetProgressMessage: progressMessageStage: -1, ExecuteState: CbsExecuteStatePrimitives [2], SubStage: 3
2015-01-07 23:35:11, Info                  CBS    Shtd: Processing primitive operations queue.
2015-01-07 23:35:11, Info                  CBS    Obtained poqexec from PoqexecCmdline: C:\Windows\System32\poqexec.exe /display_progress \SystemRoot\WinSxS\pending.xml
2015-01-07 23:35:11, Info                  CBS    Removed poqexec from Configuration key.
2015-01-07 23:35:11, Info                  CBS    Configured poqexec to pend to SetupExecute.
2015-01-07 23:35:11, Info                  CBS    Running poqexec with: C:\Windows\System32\poqexec.exe /noreboot /transaction 1396 /display_progress \SystemRoot\WinSxS\pending.xml
2015-01-07 23:35:11, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-07 23:35:12, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 15.
2015-01-07 23:35:16, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-07 23:35:21, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-07 23:35:26, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-07 23:35:27, Info                  CBS    SQM: Reporting poqexec status with status: 0xc0000043, failed file: tahomabd.ttf, interfering process: coldfusion.exe,coldfusion.exe,coldfusion.exe,coldfusion.exe, context: Shutdown, first merged sequence: 1302
2015-01-07 23:35:27, Info                  CBS    SQM: Upload requested for report: PoqexecStatus, session id: 142861, sample type: Standard
2015-01-07 23:35:27, Info                  CBS    SQM: Ignoring upload request because the sample type is not enabled: Standard
2015-01-07 23:35:27, Info                  CBS    Failure in poqexec.exe while processing updates. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
2015-01-07 23:35:29, Info                  CBS    Attempting to remove poqexec from SetupExecute
2015-01-07 23:35:29, Info                  CBS    Removed poqexec from SetupExecute.
2015-01-07 23:35:29, Info                  CBS    Configured poqexec to not pend to SetupExecute.
2015-01-07 23:35:29, Error                 CBS    Shtd: Failed while processing critical primitive operations queue. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
2015-01-07 23:35:29, Info                  CBS    SetProgressMessage: progressMessageStage: 4, ExecuteState: CbsExecuteStatePrimitives, SubStage: 0
2015-01-07 23:35:29, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Temporary Rollback.
2015-01-07 23:35:29, Info                  CBS    SQM: Waiting up to 60000 ticks for pending uploads to complete.
2015-01-07 23:35:29, Info                  CBS    Shtd: progress thread terminating. [HRESULT = 0x00000000 - S_OK]
2015-01-07 23:35:29, Info                  CBS    Shtd: progress thread terminated normally
2015-01-07 23:35:29, Info                  CBS    Doqe: Unlocking driver updates, Count 73
2015-01-07 23:35:29, Info                  CBS    Simplifying Winlogon CreateSession notifications
2015-01-07 23:35:29, Info                  CBS    Shtd: Shutdown processing complete.
2015-01-07 23:35:29, Info                  CBS    Restored system sleep block state: 0x80000000
2015-01-07 23:35:29, Info                  CBS    Failed to call Shutdown Processing on Worker process. [HRESULT = 0x80070020]
2015-01-07 23:35:29, Info                  CBS    Failed to execute shutdown processing. [HRESULT = 0x80070020]
2015-01-07 23:35:29, Info                  CBS    Ending the TrustedInstaller main loop.

This clearly shows that coldfusion.exe instances are locking the TTF file. We don't know why yet.

After a lot of digging around I had some luck and identified the Windows Update Update to support the new currency symbol for the Russian ruble in Windows that replaced the tahomabd.ttf. This update is part of August 2014 update rollup for Windows RT, Windows 8, and Windows Server 2012. Now we moved forward and disabled the deployment of this update in WSUS and tried again.

But it fails again and now it is caused by NirmalaB.ttf being locked by coldfusion.exe:

2015-01-13 15:10:32, Info                  CBS    Startup: Non-critical driver operations completed successfully.
2015-01-13 15:10:32, Info                  CBS    Setting ExecuteState key to: CbsExecuteStatePrimitives [2]
2015-01-13 15:10:32, Info                  CBS    SetProgressMessage: progressMessageStage: -1, ExecuteState: CbsExecuteStatePrimitives [2], SubStage: 3
2015-01-13 15:10:32, Info                  CBS    Startup: Processing primitive operations queue.
2015-01-13 15:10:32, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 15.
2015-01-13 15:10:33, Info                  CBS    Obtained poqexec from PoqexecCmdline: C:\Windows\System32\poqexec.exe /display_progress \SystemRoot\WinSxS\pending.xml
2015-01-13 15:10:33, Info                  CBS    Removed poqexec from Components\Configuration key.
2015-01-13 15:10:33, Info                  CBS    Configured poqexec to pend to SetupExecute.
2015-01-13 15:10:33, Info                  CBS    Running poqexec with: C:\Windows\System32\poqexec.exe /noreboot /transaction 1076 /display_progress \SystemRoot\WinSxS\pending.xml
2015-01-13 15:10:33, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:10:38, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:10:43, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:10:48, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:10:53, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:10:58, Info                  CBS    Waiting for poqexec.exe to complete...
2015-01-13 15:11:01, Info                  CBS    SQM: Reporting poqexec status with status: 0xc0000043, failed file: NirmalaB.ttf, interfering process: coldfusion.exe,coldfusion.exe,coldfusion.exe,coldfusion.exe, context: Startup, first merged sequence: 656
2015-01-13 15:11:01, Info                  CBS    SQM: Upload requested for report: PoqexecStatus, session id: 142861, sample type: Standard
2015-01-13 15:11:01, Info                  CBS    SQM: Ignoring upload request because the sample type is not enabled: Standard
2015-01-13 15:11:01, Info                  CBS    Failure in poqexec.exe while processing updates. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]

After some searching this could be part of Windows RT, Windows 8, and Windows Server 2012 update rollup: October 2013, but I have not found this update in WSUS yet.

Workaround

This suxxx a lot as you cannot automate Windows Update deployment and you always need to fear new updates as they may contain other TTF updates in future. As this issue is very common per Google search results, but nobody really came up with solutions you may use this as a first starting point to identify your interfering process. This could be coldfusion, but it could also be every other Java based server you are running, too.

  1. Disable all ColdFusion Services
    Get-Service ColdFusion* | ForEach-Object {
      Set-Service -name $_.name -StartupType Disabled
      Stop-service $_.name
    }
  2. Install the Windows Updates with sconfig > 6 > All; Reboot as often as required.
  3. Re-enable all ColdFusion Services
    Get-Service ColdFusion* | ForEach-Object {
      Set-Service -name $_.name -StartupType Automatic
      Start-service $_.name
    }

History:

  • 13/01/2015: Escalated to Adobe.
  • 13/01/2015: Documented bug to the public. Coldfusion 10 locks the font files.
Rating
Average: 7.7 (14 votes)