When Recompressing .ttf Font files (previously compressed with the attribute in Windows Explorer properties) that have hard links (to files not in use or on the system), a BSOD can be triggered due to volmgr failure in Windows 11 (which activates system protection marking the drive as corrupt requiring forced CHKDSK on startup).
Tried to replicate a third time without success, the GUI hangs immediately when analyzing the folder because a file is missing (probably the file was corrupted/lost during the BSOD)
BugCheck Message:
The computer has rebooted from a bugcheck. The bugcheck was: 0x00000050 (0xffffd1039e940000, 0x0000000000000000, 0xfffff8026c737500, 0x0000000000000002).
A corruption was discovered in the file system structure on volume E:.
The exact nature of the corruption is unknown. The file system structures need to be scanned and fixed offline.
Volume E: (\Device\HarddiskVolume10) needs to be taken offline to perform a Full Chkdsk. Please run "CHKDSK /F" locally via the command line, or run "REPAIR-VOLUME <drive:>" locally or remotely via PowerShell.
DotNet Event:
Application: CompactGUI.exe CoreCLR Version: 6.0.2824.12007 .NET Version: 6.0.28 Description: The process was terminated due to an unhandled exception. Exception Info: System.AggregateException: One or more errors occurred. (Could not find file 'E:\Fonts de windows\Chunkfive.otf'.) ---> System.IO.FileNotFoundException: Could not find file 'E:\Fonts de windows\Chunkfive.otf'. File name: 'E:\Fonts de windows\Chunkfive.otf' at System.IO.FileInfo.get_Length() at CompactGUI.Core.Analyser.AnalyseFile(String file, Int32& compressedFilesCount, ConcurrentBag1& fileDetails)
at CompactGUI.Core.Analyser._Closure$22-0._Lambda$2(String file)
at System.Threading.Tasks.Parallel.<>cDisplayClass33_0`2.b0(Int32 i)
at System.Threading.Tasks.Parallel.<>cDisplayClass19_01.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location --- at System.Threading.Tasks.Parallel.<>c__DisplayClass19_01.b1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction1 action, ParallelOptions options, Boolean stopOnFirstFailure) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IList1 list, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body) at CompactGUI.Core.Analyser._Closure$__22-0._Lambda$__1() at System.Threading.Tasks.Task1.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at CompactGUI.Core.Analyser.AnalyseFolder(CancellationToken cancellationToken)
at CompactGUI.MainViewModel.AnalyseBegin()
at System.Threading.Tasks.Task.<>c.b__128_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at CompactGUI.Application.Main()
`
When Recompressing .ttf Font files (previously compressed with the attribute in Windows Explorer properties) that have hard links (to files not in use or on the system), a BSOD can be triggered due to volmgr failure in Windows 11 (which activates system protection marking the drive as corrupt requiring forced CHKDSK on startup).
Tried to replicate a third time without success, the GUI hangs immediately when analyzing the folder because a file is missing (probably the file was corrupted/lost during the BSOD)
Generated Events:
Faulting application name: CompactGUI.exe, version: 3.0.0.0, time stamp: 0x65ab0000 Faulting module name: KERNELBASE.dll, version: 10.0.22621.3374, time stamp: 0x3069ce37 Exception code: 0xe0434352 Fault offset: 0x00000000000653ac Faulting process id: 0x0xD20 Faulting application start time: 0x0x1DA898E0BE1E42D Faulting application path: D:\charl\Downloads\CompactGUI.exe Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll Report Id: cfc246b2-4c25-4fe4-ab17-c5cf12b28d60 Faulting package full name: Faulting package-relative application ID:
Application: CompactGUI.exe CoreCLR Version: 6.0.2824.12007 .NET Version: 6.0.28 Description: The process was terminated due to an unhandled exception. Exception Info: System.AggregateException: One or more errors occurred. (Could not find file 'E:\Fonts de windows\Chunkfive.otf'.) ---> System.IO.FileNotFoundException: Could not find file 'E:\Fonts de windows\Chunkfive.otf'. File name: 'E:\Fonts de windows\Chunkfive.otf' at System.IO.FileInfo.get_Length() at CompactGUI.Core.Analyser.AnalyseFile(String file, Int32& compressedFilesCount, ConcurrentBag
1& fileDetails) at CompactGUI.Core.Analyser._Closure$22-0._Lambda$2(String file) at System.Threading.Tasks.Parallel.<>cDisplayClass33_0`2.1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location --- at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0
1.1 action, ParallelOptions options, Boolean stopOnFirstFailure) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action
1 body, Action2 bodyWithState, Func
4 bodyWithLocal, Func1 localInit, Action
1 localFinally) --- End of stack trace from previous location --- at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action
2 bodyWithState, Func4 bodyWithLocal, Func
1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IList
1 list, ParallelOptions parallelOptions, Action1 body, Action
2 bodyWithState, Action3 bodyWithStateAndIndex, Func
4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func
1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable
1 source, ParallelOptions parallelOptions, Action1 body, Action
2 bodyWithState, Action3 bodyWithStateAndIndex, Func
4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func
1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable
1 source, ParallelOptions parallelOptions, Action1 body) at CompactGUI.Core.Analyser._Closure$__22-0._Lambda$__1() at System.Threading.Tasks.Task
1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location --- at CompactGUI.Core.Analyser.AnalyseFolder(CancellationToken cancellationToken) at CompactGUI.MainViewModel.AnalyseBegin() at System.Threading.Tasks.Task.<>c.