Skip to content

Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.RaiseChangeEvents takes down process on an IO exception #71003

@danmoseley

Description

@danmoseley

Note, this is in a 6.0 run. But I see no issue that was already fixed.

Console log: 'Microsoft.Extensions.FileProviders.Physical.Tests' from job 6da37b81-3523-4f12-a96c-801644c3d58d workitem 9e894db9-c746-4e6b-8afb-11e12f053fb9 (windows.81.amd64.open.svc) executed on machine a0000OH
...

Unhandled exception. System.UnauthorizedAccessException: Access to the path 'C:\h\w\A36408E4\t\dpomsqxx.ukm\bskgbwzu.5ha' is denied.
   at System.IO.FileSystem.GetFinalLinkTarget(String linkPath, Boolean isDirectory) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Windows.cs:line 585
   at System.IO.FileSystem.ResolveLinkTarget(String linkPath, Boolean returnFinalTarget, Boolean isDirectory) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileSystem.Windows.cs:line 422
   at System.IO.FileSystemInfo.ResolveLinkTarget(Boolean returnFinalTarget) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileSystemInfo.cs:line 170
   at Microsoft.Extensions.FileProviders.Physical.FileSystemInfoHelper.GetFileLinkTargetLastWriteTimeUtc(FileInfo fileInfo) in /_/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Internal/FileSystemInfoHelper.cs:line 56
   at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.GetLastWriteTimeUtc() in /_/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PollingFileChangeToken.cs:line 57
   at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.get_HasChanged() in /_/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PollingFileChangeToken.cs:line 101
   at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.RaiseChangeEvents(Object state) in /_/src/libraries/Microsoft.Extensions.FileProviders.Physical/src/PhysicalFilesWatcher.cs:line 476
   at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Timer.cs:line 673
   at System.Threading.TimerQueue.FireNextTimers() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Timer.cs:line 326

I found #57266, but this is not creating a symbolic link.

Looking at the dump briefly, I see no test running. Is it possible a test completed without unregistering for events -- so if this had not hit access denied, it would have gone nowhere?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions