darklinkpower / PlayniteExtensionsCollection

Collection of extensions made for Playnite.
MIT License
307 stars 28 forks source link

[Installation Status Updater] Crashed Playnite after wake up from sleep #546

Open SparrowBrain opened 4 months ago

SparrowBrain commented 4 months ago

Extension name

Installation Status Updater

Bug Description

I woke up my computer from sleep and a crash window came up for Playnite blaming InstallationStatusUpdater.

I see from the logs, that it has happened before. I've added some new games the evening before (30-05), so maybe one of them is a culprit.

To Reproduce

No response

Logs

playnite.log:

31-05 13:09:37.598|ERROR|PlayniteApplication:Unhandled exception occured.
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.IsPathRooted(String path)
   at InstallationStatusUpdater.InstallationStatusUpdater.DetectIsFileActionInstalled(Game game, GameAction gameAction, String installDirectory) in C:\Users\Brandon\source\repos\PlayniteScriptExtensions\source\Generic\InstallationStatusUpdater\InstallationStatusUpdater.cs:line 393
   at InstallationStatusUpdater.InstallationStatusUpdater.IsAnyActionInstalled(Game game, String installDirectory) in C:\Users\Brandon\source\repos\PlayniteScriptExtensions\source\Generic\InstallationStatusUpdater\InstallationStatusUpdater.cs:line 431
   at InstallationStatusUpdater.InstallationStatusUpdater.DetectGameInstallationStatus(Game game) in C:\Users\Brandon\source\repos\PlayniteScriptExtensions\source\Generic\InstallationStatusUpdater\InstallationStatusUpdater.cs:line 557
   at InstallationStatusUpdater.InstallationStatusUpdater.DetectInstallationStatus(Boolean showResultsDialog) in C:\Users\Brandon\source\repos\PlayniteScriptExtensions\source\Generic\InstallationStatusUpdater\InstallationStatusUpdater.cs:line 447
   at InstallationStatusUpdater.InstallationStatusUpdater.Timer_Tick(Object sender, EventArgs e) in C:\Users\Brandon\source\repos\PlayniteScriptExtensions\source\Generic\InstallationStatusUpdater\InstallationStatusUpdater.cs:line 126
   at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
   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 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   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.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at Playnite.DesktopApp.ProgramEntry.Main(String[] args) in C:\projects\playnite\source\Playnite.DesktopApp\ProgramEntry.cs:line 71
31-05 13:09:37.619|DEBUG|WindowFactory:Show dialog window Playnite.Windows.ExtensionCrashHandlerWindowFactory: 181ebae5-8282-418d-95d6-8cc658451029

playnite.log

extensions.log:

31-05 13:09:32.551|DEBUG|InstallationStatusUpdater#InstallationStatusUpdater:Started timer from DBT_DEVICEREMOVECOMPLETE event
31-05 13:09:37.575|DEBUG|InstallationStatusUpdater#InstallationStatusUpdater:Starting detection by timer
31-05 13:09:38.641|DEBUG|InstallationStatusUpdater#InstallationStatusUpdater:Started timer from DBT_DEVICEARRIVAL event
31-05 13:09:43.735|DEBUG|InstallationStatusUpdater#InstallationStatusUpdater:Starting detection by timer

extensions.log

Screenshots

No response

SparrowBrain commented 4 months ago

Most likely caused because the game I added had double quotes in the action path: "C:\Program Files (x86)\DOSBox-0.74-3\DOSBox.exe"