microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
109.89k stars 6.48k forks source link

crashed when i started downloading a steam game #6896

Closed rosearian closed 3 years ago

rosearian commented 3 years ago

ℹ Computer information

📝 Provide detailed reproduction steps (if any)

  1. Run PowerToys in the background
  2. Start Downloading a game on to another drive (not the one powertoys is installed on

✔️ Expected result

No crash

❌ Actual result

crash

📷 Screenshots

2020-09-29.txt

rosearian commented 3 years ago

I tried it again with another game and it didn't crash, so maby it is specific to "Wreckfest"

crutkas commented 3 years ago

There are two different exceptions but both access denied.

Here is the crashing exception

System.UnauthorizedAccessException: Access to the path 'C:\Users\Arian\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\Wreckfest.url' is denied.
   Source: System.Private.CoreLib
   TargetAssembly: System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
   TargetModule: System.Private.CoreLib.dll
   TargetSite: Microsoft.Win32.SafeHandles.SafeFileHandle ValidateFileHandle(Microsoft.Win32.SafeHandles.SafeFileHandle)
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path, Encoding encoding)
   at System.IO.File.InternalReadAllLines(String path, Encoding encoding)
   at System.IO.File.ReadAllLines(String path)
   at Wox.Infrastructure.FileSystemHelper.FileWrapper.ReadAllLines(String path)
   at Microsoft.Plugin.Program.Programs.Win32Program.InternetShortcutProgram(String path)
   at Microsoft.Plugin.Program.Programs.Win32Program.GetAppFromPath(String path)
   at Microsoft.Plugin.Program.Storage.Win32ProgramRepository.OnAppChanged(Object sender, FileSystemEventArgs e)
   at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(WatcherChangeTypes changeType, ReadOnlySpan`1 name)
   at System.IO.FileSystemWatcher.ParseEventBufferAndNotifyForEach(Byte[] buffer)
   at System.IO.FileSystemWatcher.ReadDirectoryChangesCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
   at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
   at System.Threading._IOCompletionCallback.IOCompletionCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pNativeOverlapped)

caught but still access denied exception

2020-09-29 16:44:33.8618|ERROR||------------- BEGIN Microsoft.Plugin.Program exception -------------
2020-09-29 16:44:33.8618|ERROR||
Exception full name: System.UnauthorizedAccessException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\HP\HP Officejet Pro 8610\HP Online-Druckerdiagnosetools.lnk
InnerException number: 1
Exception message: Zugriff verweigert (0x80070005 (E_ACCESSDENIED))
Exception error type: HResult -2147024891
Exception thrown in called method: Void Load(System.String, Int32)
Possible interpretation of the error: An unexpected error occurred in the calling method LnkProgram
Possible resolution: Can be ignored and Wox should still continue, however the program may not be loaded
2020-09-29 16:44:33.8618|ERROR||------------- END Microsoft.Plugin.Program exception -------------
crutkas commented 3 years ago

@rosearian is PowerToys running as a different user or are you installing as a different user?

rosearian commented 3 years ago

@crutkas no its running on the main user and i think it is installed on all users however only one user was logged in at that moment

crutkas commented 3 years ago

i'm betting we're trying to index new URL when Steam still has the file in use. @alekhyareddy28 i think you did the fix for the e-reader installer, would that fix this?

@rosearian have you tried 0.23 yet? This may be fixed there with this change: https://github.com/microsoft/PowerToys/pull/6821/

rosearian commented 3 years ago

@crutkas i have just downloaded 0.23 but i cant try it yet. i'll try it tomorrow but i doubt that i could ever reproduce the crash because as i wrote before it didn't happen a second time so idk. ill try it tomorrow

alekhyareddy28 commented 3 years ago

@crutkas, I think it might be the same issue when we're trying to read the app information immediately. An access denied exception is thrown if there is an IO error. I think the app is probably making the file read only till it finishes writing to it leading to this exception.

@rosearian Please let us know if the latest release doesn't fix it and I'll look into it. Thank you.

crutkas commented 3 years ago

@alekhyareddy28 is this something you can quickly test out to see if we can't repo?

alekhyareddy28 commented 3 years ago

@rosearian, could you try to close and reopen powertoys and see if wreckfest (assuming it's now installed on your system) shows up now on PT Run or if it still crashes. That would tell us if installation was the issue or not (you could just do this with the current release that you are on right now). Thank you! Your input is highly appreciated.

rosearian commented 3 years ago

@alekhyareddy28 i tried searching for wreckfest with powertoys run and i can't find it but i also cant find it in the normal windows startmenu so it probably isnt added to the start menu. i wasnt using PT at all when the crash occured it just opened the crash report after i started the download. it was probably fixed with "Stopped PT Run from interfering with an install" change in the latest update.

crutkas commented 3 years ago

Added in 0.25. https://github.com/microsoft/PowerToys/releases/tag/v0.25.0