Skip to content

Coverlet.Collector.Utilities.CoverletDataCollectorException failing to access a DLL because it is being used by another process #1224

Open
@jeofyoung

Description

@jeofyoung

Hi,

We're recently hitting this error when we made a change:

2021-09-16T02:13:33.6242181Z Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to get coverage result
2021-09-16T02:13:33.6247821Z  ---> System.AggregateException: One or more errors occurred. (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.) (The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.)
2021-09-16T02:13:33.6253533Z  ---> System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6255030Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6255590Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6256243Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6257019Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6257746Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6258479Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52
2021-09-16T02:13:33.6259063Z    --- End of inner exception stack trace ---
2021-09-16T02:13:33.6259715Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 59
2021-09-16T02:13:33.6260483Z    at Coverlet.Core.Helpers.RetryHelper.Retry(Action action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 23
2021-09-16T02:13:33.6261263Z    at Coverlet.Core.Helpers.InstrumentationHelper.RestoreOriginalModule(String module, String identifier) in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 227
2021-09-16T02:13:33.6261940Z    at Coverlet.Core.Coverage.GetCoverageResult() in /_/src/coverlet.core/Coverage.cs:line 245
2021-09-16T02:13:33.6262762Z    at Coverlet.Collector.DataCollection.CoverageWrapper.GetCoverageResult(Coverage coverage) in /_/src/coverlet.collector/DataCollection/CoverageWrapper.cs:line 53
2021-09-16T02:13:33.6263521Z    at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 92
2021-09-16T02:13:33.6264367Z  ---> (Inner Exception #1) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6265114Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6265660Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6266396Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6267185Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6267916Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6268643Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6269054Z 
2021-09-16T02:13:33.6269660Z  ---> (Inner Exception #2) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6270403Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6270956Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6271606Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6272678Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6273380Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6274079Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6274420Z 
2021-09-16T02:13:33.6274995Z  ---> (Inner Exception #3) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6275716Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6276245Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6276877Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6277625Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6278323Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6279069Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6279498Z 
2021-09-16T02:13:33.6280087Z  ---> (Inner Exception #4) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6280806Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6281329Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6281953Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6282697Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6283397Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6284100Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6284445Z 
2021-09-16T02:13:33.6285021Z  ---> (Inner Exception #5) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6285760Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6286283Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6287088Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6287857Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6288732Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6290451Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6290960Z 
2021-09-16T02:13:33.6291541Z  ---> (Inner Exception #6) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6292252Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6292777Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6293407Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6294153Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6294859Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6295555Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6295896Z 
2021-09-16T02:13:33.6296469Z  ---> (Inner Exception #7) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6297279Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6297806Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6298431Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6299184Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6300169Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6301068Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6301410Z 
2021-09-16T02:13:33.6301991Z  ---> (Inner Exception #8) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6302702Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6303231Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6303850Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6304593Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6305291Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6305992Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6307002Z 
2021-09-16T02:13:33.6307694Z  ---> (Inner Exception #9) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6309125Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6309698Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6310491Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6311237Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6312147Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6312822Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6313155Z 
2021-09-16T02:13:33.6313715Z  ---> (Inner Exception #10) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6314412Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6314922Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6315526Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6316362Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6317052Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6317728Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6318059Z 
2021-09-16T02:13:33.6318621Z  ---> (Inner Exception #11) System.IO.IOException: The process cannot access the file 'D:\a\_work\1\a\test\runners.test\Release\netcoreapp3.1\runners.dll' because it is being used by another process.
2021-09-16T02:13:33.6319359Z    at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
2021-09-16T02:13:33.6319881Z    at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
2021-09-16T02:13:33.6320485Z    at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
2021-09-16T02:13:33.6321208Z    at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
2021-09-16T02:13:33.6321888Z    at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
2021-09-16T02:13:33.6322563Z    at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---
2021-09-16T02:13:33.6322895Z 
2021-09-16T02:13:33.6323205Z    --- End of inner exception stack trace ---
2021-09-16T02:13:33.6323734Z    at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 97
2021-09-16T02:13:33.6324498Z    at Coverlet.Collector.DataCollection.CoverletCoverageCollector.OnSessionEnd(Object sender, SessionEndEventArgs e) in /_/src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs:line 161.
2021-09-16T02:13:33.7862217Z Results File: D:\a\_work\1\s\cloudtest_0ac15ae9c000000_2021-09-16_02_13_17.trx

We're using the latest version: https://www.nuget.org/packages/coverlet.collector/3.1.0
Command we're using to run:

C:\Program Files\dotnet\dotnet.exe" test D:\a\_work\1\s\test\runners.test\runners.test.csproj -c Release --logger trx --results-directory:D:\a\_work\1\s "--collect:XPlat Code Coverage"

This is currently blocking a change we need to diagnose a failure ..

There seems to be some timing issue that's affecting this - e.g.:

  • We're currently only seeing this in azure pipeline builds and I can only reproduce this on my machine if I specify "-v diag" or "-v detailed" with the dotnet call
  • Error goes away in azure pipeline builds if I specify "--no-build" with dotnet test
  • Error goes away in azure pipeline builds if I specify "-v diag /p:CollectCoverage=true" - I didn't try specifying "-v diag" or just "CollectCoverage=true" on their own.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions