Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jeofyoung opened this issue Sep 17, 2021 · 12 comments
Labels
Known Issue It's a know issue

Comments

@jeofyoung
Copy link

jeofyoung commented Sep 17, 2021

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.
@MarcoRossignoli
Copy link
Collaborator

MarcoRossignoli commented Sep 29, 2021

Looks like that command you reported is running instrumentation/tests multiple time overlapped.
Can you tell me what driver are you using?I see collector and your 3th bullet point said /p:CollectCoverage=true so seems that you're referencing also msbuild driver of coverlet and not only the collector one. I wonder if there is something wrong with that.

@MarcoRossignoli MarcoRossignoli added the waiting for customer Waiting for customer action label Sep 29, 2021
@bert2
Copy link
Contributor

bert2 commented Nov 15, 2021

I can confirm this issue. It happens only sometimes (about 1 in 50 builds).

We are using the recommended VSTest integration (coverlet.collector package). This is how we call it (via Cake Frosting):

this.DotNetCoreTest(BuildSettings.SolutionFile, new DotNetCoreTestSettings
{
    Collectors = new List<string> { "XPlat Code Coverage" },
    Configuration = BuildConfig,
    ResultsDirectory = TestReportsDir,
    NoBuild = true,
    NoRestore = true,
    Filter = "FullyQualifiedName!~End2End&FullyQualifiedName!~Integration",
    ArgumentCustomization = args =>
    {
        args.AppendMSBuildSettings(new DotNetCoreMSBuildSettings { MaxCpuCount = 1 }, environment: null);
        args.Append(" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.IncludeTestAssembly=false");
        return args;
    },
});

@bert2
Copy link
Contributor

bert2 commented Nov 15, 2021

We've only been using the VSTest integration for 1.5 months so I can't say if the problem came with an update of the package. But the timing issue described by OP seems likely, because our build machine sometimes faces heavy load in which case build jobs will take longer than usual.

@bert2
Copy link
Contributor

bert2 commented Nov 15, 2021

Relevant part of our build log
Test run for C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Unit.dll (.NETCoreApp,Version=v3.1)
Microsoft (R) Test Execution Command Line Tool Version 17.0.0-preview-20210817-02
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to get coverage result
 ---> System.AggregateException: One or more errors occurred. (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.) (The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.)
 ---> System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52
   --- End of inner exception stack trace ---
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 59
   at Coverlet.Core.Helpers.RetryHelper.Retry(Action action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 23
   at Coverlet.Core.Helpers.InstrumentationHelper.RestoreOriginalModule(String module, String identifier) in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 227
   at Coverlet.Core.Coverage.GetCoverageResult() in /_/src/coverlet.core/Coverage.cs:line 245
   at Coverlet.Collector.DataCollection.CoverageWrapper.GetCoverageResult(Coverage coverage) in /_/src/coverlet.collector/DataCollection/CoverageWrapper.cs:line 53
   at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 92
 ---> (Inner Exception #1) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #2) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #3) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #4) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #5) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #6) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #7) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #8) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #9) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #10) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

 ---> (Inner Exception #11) System.IO.IOException: The process cannot access the file 'C:\Jenkins\workspace\REBOCO_PullRequests\reservation\tests\Unit\bin\Release\netcoreapp3.1\Booking.Adapters.Endpoints.dll' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 32
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass13_0.<RestoreOriginalModule>b__0() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 229
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 25
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 52<---

   --- End of inner exception stack trace ---
   at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 97
   at Coverlet.Collector.DataCollection.CoverletCoverageCollector.OnSessionEnd(Object sender, SessionEndEventArgs e) in /_/src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs:line 161.

Passed!  - Failed:     0, Passed:   363, Skipped:     0, Total:   363, Duration: 7 m 16 s - Unit.dll (netcoreapp3.1)
Test run for C:\Jenkins\workspace\REBOCO_PullRequests\domain\tests\Unit\bin\Release\netcoreapp3.1\Domain.Unit.dll (.NETCoreApp,Version=v3.1)
Microsoft (R) Test Execution Command Line Tool Version 17.0.0-preview-20210817-02
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.

Attachments:
  C:\Jenkins\workspace\REBOCO_PullRequests\BuildOutput\TestReports\41746e5e-ca99-4f98-869a-2563cc8620d2\coverage.cobertura.xml
Passed!  - Failed:     0, Passed:    15, Skipped:     0, Total:    15, Duration: 36 ms - Domain.Unit.dll (netcoreapp3.1)
2021-11-15T15:34:14: Arguments
2021-11-15T15:34:14:  -reports:C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/TestReports/41746e5e-ca99-4f98-869a-2563cc8620d2/coverage.cobertura.xml;C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/TestReports/d103772e-2b9d-411f-ae08-5983580de1de/coverage.cobertura.xml
2021-11-15T15:34:14:  -targetdir:C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/CoverageReports/html
2021-11-15T15:34:37: Writing report file 'C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/CoverageReports/html\index.html'
2021-11-15T15:34:38: Report generation took 22,7 seconds
2021-11-15T15:34:38: Arguments
2021-11-15T15:34:38:  -reports:C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/TestReports/41746e5e-ca99-4f98-869a-2563cc8620d2/coverage.cobertura.xml;C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/TestReports/d103772e-2b9d-411f-ae08-5983580de1de/coverage.cobertura.xml
2021-11-15T15:34:38:  -targetdir:C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/CoverageReports
2021-11-15T15:34:38:  -reporttypes:Cobertura
2021-11-15T15:34:38: Writing report file 'C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/CoverageReports\Cobertura.xml'
2021-11-15T15:34:38: Report generation took 0,3 seconds
Coverage HTML report: C:/Jenkins/workspace/REBOCO_PullRequests/BuildOutput/CoverageReports/html/index.html

Interestingly dotnet test just continues with the next project afterwards as if nothing had happend. The coverage report will be incomplete though due to the error.

@MarcoRossignoli
Copy link
Collaborator

The issue looks like is related to "restore" instrumented file after tests https://github.com/coverlet-coverage/coverlet/blob/master/src/coverlet.core/Helpers/InstrumentationHelper.cs#L218 so for some reason that files are locked by someone, usually are antivirus o some other tool.

@MarcoRossignoli
Copy link
Collaborator

MarcoRossignoli commented Nov 16, 2021

A past idea was add a flag like --skiprestoreinstrumentedmodules and avoid to restore files, in CI usually produced dll is not used anymore after tests so it's not so important restore with original(non instrumented) one.
But libraries from that folders MUST not end in production.

@MarcoRossignoli MarcoRossignoli added Priority:1 Very important to release, not a ship blocker feature-request New feature request labels Nov 16, 2021
@bert2
Copy link
Contributor

bert2 commented Nov 21, 2021

Hi @MarcoRossignoli, thanks for looking into this!

I think such a flag would work for us. We can always throw away the build after coverage analysis and make a new one for deployment.

My gues is, if it really is some anti-virus software then there is isn't much that can be done anyway. The build machine is not fully under our control (as it is the case in many CI scenarios, I imagine).

@MarcoRossignoli
Copy link
Collaborator

coverlet retries more times during restore but looks like in this case is not enough

@PersonalFork
Copy link

Getting this error in around 1 out of 10 builds. The problem is, the entire process runs, and in the end, the coverage report remains incomplete.

@tepatelcmc
Copy link

I am still getting The process can not access the file because it is being used by another process. Is it fixed?

@yardee
Copy link

yardee commented Jun 7, 2023

Hi, we are experiencing same issue after upgrading from version 3.2.0 to 6.0.0. Any progress with fix?

@aurax
Copy link

aurax commented Jun 29, 2023

Hello,
same issue after upgrading from version 3.2.0 to 6.0.0. Any idea how to fix it?

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to instrument modules
 ---> System.AggregateException: One or more errors occurred. (The process cannot access the file XXX\ABC.pdb
 ---> System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55
   --- End of inner exception stack trace ---
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 62
   at Coverlet.Core.Helpers.RetryHelper.Retry(Action action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 26
   at Coverlet.Core.Helpers.InstrumentationHelper.RestoreOriginalModule(String module, String identifier) in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 272
   at Coverlet.Core.Coverage.PrepareModules() in /_/src/coverlet.core/Coverage.cs:line 145
   at Coverlet.Collector.DataCollection.CoverageWrapper.PrepareModules(Coverage coverage) in /_/src/coverlet.collector/DataCollection/CoverageWrapper.cs:line 67
   at Coverlet.Collector.DataCollection.CoverageManager.InstrumentModules() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 67
 ---> (Inner Exception #1) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #2) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #3) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #4) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #5) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #6) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #7) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #8) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #9) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #10) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

 ---> (Inner Exception #11) System.IO.IOException: The process cannot access the file 'XXX\ABC.pdb' because it is being used by another process.
   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
   at Coverlet.Core.Helpers.FileSystem.Copy(String sourceFileName, String destFileName, Boolean overwrite) in /_/src/coverlet.core/Helpers/FileSystem.cs:line 35
   at Coverlet.Core.Helpers.InstrumentationHelper.<>c__DisplayClass16_0.<RestoreOriginalModule>b__1() in /_/src/coverlet.core/Helpers/InstrumentationHelper.cs:line 277
   at Coverlet.Core.Helpers.RetryHelper.<>c__DisplayClass0_0.<Retry>b__0() in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 28
   at Coverlet.Core.Helpers.RetryHelper.Do[T](Func`1 action, Func`1 backoffStrategy, Int32 maxAttemptCount) in /_/src/coverlet.core/Helpers/RetryHelper.cs:line 55<---

   --- End of inner exception stack trace ---
   at Coverlet.Collector.DataCollection.CoverageManager.InstrumentModules() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 72
   at Coverlet.Collector.DataCollection.CoverletCoverageCollector.OnSessionStart(Object sender, SessionStartEventArgs sessionStartEventArgs) in /_/src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs:line 143.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.5+1caef2f33e (64-bit .NET 6.0.18)

@Bertk Bertk added the Known Issue It's a know issue label Aug 25, 2023
@Bertk Bertk removed feature-request New feature request waiting for customer Waiting for customer action Priority:1 Very important to release, not a ship blocker labels Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Known Issue It's a know issue
Projects
None yet
Development

No branches or pull requests

8 participants