dotnet/runtime
Voir sur GitHubEnsure FileStatus' Unix exception throwing behavior matches Windows
Open
#31 141 ouverte le 10 oct. 2019
area-System.IObacklog-cleanup-candidatehelp wantedno-recent-activity
Métriques du dépôt
- Stars
- (17 886 stars)
- Métriques de merge PR
- (Merge moyen 12j 11h) (661 PRs mergées en 30 j)
Description
Initially reported by @davidfowl and discussed via email with @JeremyKuhne : we need to make sure Unix matches Windows when it comes to capturing and throwing exceptions.
David got this callstack when the Docker container got disconnected:
Unhandled exception. Unhandled exception. System.IO.IOException: Input/output error
at System.IO.FileStatus.EnsureStatInitialized(ReadOnlySpan`1 path, Boolean continueOnError)
at System.IO.FileStatus.GetLastWriteTime(ReadOnlySpan`1 path, Boolean continueOnError)
at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.GetLastWriteTimeUtc()
at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.get_HasChanged()
at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.RaiseChangeEvents(Object state)
at System.Threading.TimerQueueTimer.CallCallback(Boolean isThreadPool)
at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
at System.Threading.TimerQueue.FireNextTimers()System.IO.IOException: Input/output error
at System.IO.FileStatus.EnsureStatInitialized(ReadOnlySpan`1 path, Boolean continueOnError)
at System.IO.FileStatus.GetLastWriteTime(ReadOnlySpan`1 path, Boolean continueOnError)
at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.GetLastWriteTimeUtc()
at Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken.get_HasChanged()
at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.RaiseChangeEvents(Object state)
at System.Threading.TimerQueueTimer.CallCallback(Boolean isThreadPool)
at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
at System.Threading.ThreadPoolWorkQueue.Dispatch()