hotsapi / HotsStats

An app that shows player stats during loading screen in Heroes of the Storm
MIT License
145 stars 24 forks source link

App crashes after 1 minute #8

Closed rcocchiararo closed 8 years ago

rcocchiararo commented 8 years ago

Hi

I started running the app today, and with today patch (never tried before), it is crashing after the 1 minute mark, and if i re-run it, it does not crash till the next day, but offers no further info other than the pre-1minute mark one.

poma commented 8 years ago

Checked on both US and EU and it works for me. I'm afraid we have to wait until error logging is implemented so we know the details of your error.

rcocchiararo commented 8 years ago

Buuuu.

I play on us.

El mié., 16 de mar. de 2016 05:38, Roman Semenov notifications@github.com escribió:

Checked on both US and EU and it works for me. I'm afraid we have to wait until error logging is implemented.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/poma/HotsStats/issues/8#issuecomment-197212683

Roberto Cocchiararo

matteoacrossi commented 8 years ago

I have the same problem. It crashes every time. I play in EU

rcocchiararo commented 8 years ago

My gaming pc runs windows 10 x64.

El mié., 16 de mar. de 2016 14:58, teored90 notifications@github.com escribió:

I have the same problem. It crashes every time. I play in EU

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/poma/HotsStats/issues/8#issuecomment-197459088

Roberto Cocchiararo

rcocchiararo commented 8 years ago

Crash info:

Faulting application name: HotsStats.exe, version: 0.1.0.0, time stamp: 0x56e80e38 Faulting module name: KERNELBASE.dll, version: 10.0.10586.162, time stamp: 0x56cd55ab Exception code: 0xe0434352 Fault offset: 0x000bdad8 Faulting process id: 0x840 Faulting application start time: 0x01d17fc79a59003d Faulting application path: C:\apps\HotsStats\HotsStats.exe Faulting module path: C:\Windows\SYSTEM32\KERNELBASE.dll Report Id: 46a718e5-2404-4dbe-a242-2574b92cc3c9 Faulting package full name: Faulting package-relative application ID:

Application: HotsStats.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.IOException at System.IO.Error.WinIOError(Int32, System.String) at System.IO.File.InternalCopy(System.String, System.String, Boolean, Boolean) at System.IO.File.Copy(System.String, System.String, Boolean) at StatsFetcher.FileProcessor.ProcessRejoin(System.String, StatsFetcher.Game) at StatsDisplay.SettingsWindow.ProcessRejoinFile(System.String) at StatsDisplay.SettingsWindow+<>cDisplayClass4_1.<.ctor>b__3() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at System.Windows.Application.Run(System.Windows.Window) at StatsDisplay.App.Main()

rcocchiararo commented 8 years ago

Ok, i swear i had .net 4.5 before upgrading to windows 10, but whatever.

Installing it now to try.

rcocchiararo commented 8 years ago

EDIT: scrap that, it is integrated into windows 10, cannot install it. No idea why the error log says .net 4.0

poma commented 8 years ago

I've added some simple logging and error messages. Try to download a new release. If it crashes post contents of C:\Users\<user>\AppData\Local\HotsStats\app-0.4.0.0\log.txt there.

Looks like app is having some problems when it tries to copy rejoin file to temp folder but I need to know what exactly went wrong.

Having .net 4.0 in error description is fine because 4.5 works on top of 4.0 runtime.

rcocchiararo commented 8 years ago

Just installed, has this in the log when you close it (an exception is shown):

[17/3/2016 10:23:23 a. m.] Critical exception: System.Threading.AbandonedMutexException: Leaked a Mutex! at Squirrel.SingleGlobalInstance.Finalize()

[17/3/2016 10:23:33 a. m.] Critical exception: System.Threading.AbandonedMutexException: Leaked a Mutex! at Squirrel.SingleGlobalInstance.Finalize()

Will play in an hour to test.

EDIT: You should link the other 2 issues reporting this same thing to this one (the first :P) and close them.

poma commented 8 years ago

Try this test release https://github.com/poma/HotsStats/releases/tag/0.4.1-debug.1

jeaabr commented 8 years ago

@poma Thank you! You solved my problem. It does not crash anymore and I can finally enjoy your creation :) I have not stumbled across anymore problems so far.

matteoacrossi commented 8 years ago

Crash solved with this release. Thank you!

Il giorno gio 17 mar 2016 alle ore 15:06 jeaabr notifications@github.com ha scritto:

@poma https://github.com/poma Thank you! You solved my problem. It does not crash anymore and I can finally enjoy your creation :) I have not stumbled across anymore problems so far.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/poma/HotsStats/issues/8#issuecomment-197891971

Matteo A. C. Rossi PhD student, Applied Quantum Mechanics Group Università degli Studi di Milano via Celoria 16, IT-20133 Milano http://users.unimi.it/aqm

poma commented 8 years ago

Cool. Turns out I tried to read rejoin file before client finished writing it. Now I will properly implement fix and roll out a full release. In debug version UI will freeze for one second when rejoin file appears.

rcocchiararo commented 8 years ago

Crash seems to still be there:


Unhandled exception

System.NullReferenceException: Object reference not set to an instance of an object.

at StatsFetcher.FileProcessor.ProcessRejoin(String path, Game game)

at StatsDisplay.SettingsWindow.ProcessRejoinFile(String path)

at StatsDisplay.SettingsWindow.<>c__DisplayClass5_1.<.ctor>b__4()

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)

OK

log.txt

rcocchiararo commented 8 years ago

I did not see the 0.4.2 release when i posted that, with that, the error on closing does not happen.

will try the game in a few more hours.

Merlyn42 commented 8 years ago

0.4.2 Fixed this issue for me! thanks!

andrei-ivanovici commented 8 years ago

This is the previous error. with the full stack. Basically, it crashes when it tries to copy the save reply because HOTS keeps it opened exclusively. We must ensure that we catering for this System.IO.IOException was unhandled by user code HResult=-2147024864 Message=The process cannot access the file 'E:\Documents\Heroes of the Storm\Accounts\132033662\2-Hero-1-652844\Saves\Rejoin\0x25918BAC.StormSave' because it is being used by another process. Source=mscorlib StackTrace: at System.IO.Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost) at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite) at StatsFetcher.FileProcessor.ProcessRejoin(String path, Game game) in E:\W\HotsStats\StatsFetcher\FileProcessor.cs:line 34 at StatsDisplay.Settings.SettingsVm.ProcessRejoinFile(String path) in E:\W\HotsStats\StatsDisplay\Settings\SettingsVm.cs:line 351 at StatsDisplay.Settings.SettingsVm.<>cDisplayClass66_1.b3() in E:\W\HotsStats\StatsDisplay\Settings\SettingsVm.cs:line 316 at StatsDisplay.Settings.SettingsVm.<>cDisplayClass71_0.b_0(Object ) in E:\W\HotsStats\StatsDisplay\Settings\SettingsVm.cs:line 377 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) InnerException:

andrei-ivanovici commented 8 years ago

There is also a new bug introduced by the windows squirrel dependency. It appears that the shaprzip lib that it ships with is not compatible with the latest sharpzip lib used by the mpq parser. Here is the exception

System.IO.FileLoadException was unhandled by user code FileName=ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73 FusionLog==== Pre-bind state information === LOG: DisplayName = ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73 (Fully-specified) LOG: Appbase = file:///E:/W/HotsStats/StatsDisplay/bin/Debug/ LOG: Initial PrivatePath = NULL

Calling assembly : MpqTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

LOG: This bind starts in default load context. LOG: Using application configuration file: E:\W\HotsStats\StatsDisplay\bin\Debug\HotsStats.vshost.exe.Config LOG: Using host configuration file: LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Post-policy reference: ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73 LOG: Attempting download of new URL file:///E:/W/HotsStats/StatsDisplay/bin/Debug/ICSharpCode.SharpZipLib.DLL. WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

HResult=-2146234304 Message=Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=MpqTool StackTrace: at Foole.Mpq.MpqStream.ZlibDecompress(Stream data, Int32 expectedLength) at Foole.Mpq.MpqStream.DecompressMulti(Byte[] input, Int32 outputLength) in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqStream.cs:line 356 at Foole.Mpq.MpqStream.LoadSingleUnit() in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqStream.cs:line 274 at Foole.Mpq.MpqStream.ReadInternalSingleUnit(Byte[] buffer, Int32 offset, Int32 count) in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqStream.cs:line 249 at Foole.Mpq.MpqStream.Read(Byte[] buffer, Int32 offset, Int32 count) in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqStream.cs:line 226 at System.IO.StreamReader.ReadBuffer() at System.IO.StreamReader.get_EndOfStream() at Foole.Mpq.MpqArchive.AddFilenames(Stream stream) in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqArchive.cs:line 175 at Foole.Mpq.MpqArchive.AddListfileFilenames() in E:\W\HotsStats\Heroes.ReplayParser\MpqTool\Foole.Mpq\MpqArchive.cs:line 166 at StatsFetcher.FileProcessor.ParseRejoin(String fileName) in E:\W\HotsStats\StatsFetcher\FileProcessor.cs:line 69 at StatsFetcher.FileProcessor.d__2.MoveNext() in E:\W\HotsStats\StatsFetcher\FileProcessor.cs:line 37 InnerException:

installing the sharpzip lib in the main project seems to fix the issue. I might create a pull request this evening with fixes for both the io exception and this error

poma commented 8 years ago

I thought I already fixed both. Are you sure you are using latest version?

andrei-ivanovici commented 8 years ago

yep. just pulled everything this evening. fix is done, will create a PR soon

rcocchiararo commented 8 years ago

current 4.2.0 is no longer crashing for me.

poma commented 8 years ago

Looks like issue is resolved for everyone