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.
- Disable all ColdFusion Services
- Install the Windows Updates with
sconfig
> 6 > All; Reboot as often as required. - Re-enable all ColdFusion Services
History:
- 13/01/2015: Escalated to Adobe.
- 13/01/2015: Documented bug to the public. Coldfusion 10 locks the font files.