The process cannot access the file ‘C:Windowssystem32perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll’ because it is being used by another process.


 

SQL Server CU’s update fails with error

ScoException: The process cannot access the file 'C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll' because it is being used by another process. ---> System.IO.IOException: The process cannot access the file 'C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll' because it is being used by another process.

 

In Detail.txt you will find errors like one listed below

Sco: Attempting to normalize directory path 'C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll'
Error: Action "Microsoft.SqlServer.Configuration.ScoExtension.VerifiedCopyFileAction" threw an exception during execution.
Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: File C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\DllTmp64\sqlagentctr100.dll could not be copied to file path C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll. ---> Microsoft.SqlServer.Configuration.ScoExtension.CopyFileException: File C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\DllTmp64\sqlagentctr100.dll could not be copied to file path C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll. ---> Microsoft.SqlServer.Configuration.Sco.ScoException: The process cannot access the file 'C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll' because it is being used by another process. ---> System.IO.IOException: The process cannot access the file 'C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at Microsoft.SqlServer.Configuration.Sco.SqlFile.CopyTo(String targetFileFullPath, Boolean bCopyAcl)
   --- End of inner exception stack trace ---
tion, ActionMetadata actionMetadata, TextWriter statusStream)
Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
Slp: The configuration failure category of current exception is ConfigurationFailure
Slp: Watson Bucket 1
Original Parameter Values

2012-07-25 11:01:36 Slp: Parameter 0 : SQL2008@RTM@KB2703282

2012-07-25 11:01:36 Slp: Parameter 1 : Microsoft.SqlServer.Configuration.ScoExtension.VerifiedCopyFileAction.ExecuteAction

2012-07-25 11:01:36 Slp: Parameter 2 : System.IO.__Error.WinIOError

2012-07-25 11:01:36 Slp: Parameter 3 : Microsoft.SqlServer.Configuration.ScoExtension.CopyFileException@1360@3

2012-07-25 11:01:36 Slp: Parameter 4 : System.IO.IOException@-2147024864

2012-07-25 11:01:36 Slp: Parameter 5 : CopyPerfCounterDllToSystemDir

2012-07-25 11:01:36 Slp: Parameter 7 : Microsoft.SqlServer.Configuration.ScoExtension.CopyFileException@CopyFileFailed

2012-07-25 11:01:36 Slp: Parameter 8 : sqlagentctr100.dll

2012-07-25 11:01:36 Slp:
Final Parameter Values

2012-07-25 11:01:36 Slp: Parameter 0 : SQL2008@RTM@KB2703282

2012-07-25 11:01:36 Slp: Parameter 1 : 0x31492EED

2012-07-25 11:01:36 Slp: Parameter 2 : 0x60797DC7

2012-07-25 11:01:36 Slp: Parameter 3 : 0xFDBE3E6D@1360@3

2012-07-25 11:01:36 Slp: Parameter 4 : 0x24C2C4E7

2012-07-25 11:01:36 Slp: Parameter 5 : CopyPerfCounterDllToSystemDir

2012-07-25 11:01:36 Slp: Parameter 7 : 0xCDC6E6DD

2012-07-25 11:01:36 Slp: Parameter 8 : 0xDD73CFED

 

Resolution:

Rename C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll and Re-run the setup.

Note: Name of the above mentioned file would change based on the instance name. so review the detail.txt to get the correct file name,rename it and then re-run the setup.

 

Similar SQL Server setup issues

 

 

Thank you,

Karthick P.K |Technical Lead | Microsoft SQL Server Support |

My Facebook Page |My Site| Blog space| Twitter

 

Comments (1)

  1. Thank you for the manual work-around, Are there any intentions to fix the patch so manual intervention is not required? We use automated patching software in designated overnight outage windows. Unles I am missing something, this means a DBA will have to touch every SQL2008R2 SQL Server and MANUALLY rename the files, reboot the server and rerun the patch. Clearly this is unacceptable. Please respond.

Skip to main content