johanneszab / TumblThree

A Tumblr Blog Backup Application
https://www.jzab.de/content/tumblthree
MIT License
921 stars 130 forks source link

Crashed after sorting rows while queue runs #228

Open f2d opened 6 years ago

f2d commented 6 years ago

Running on Windows 7 x64 SP1, first run ever. TumblThree crashed two times while downloading a queue after several tens completed of around a hundred added blogs.

I don't remember details of the first time, but second was while clicking several column headers for sorting, last clicked was "Number of downloads".

From Windows event logs, Application Error:

Faulting application name: TumblThree.exe, version: 1.0.8.48, time stamp: 0x5ad79c9d Faulting module name: KERNELBASE.dll, version: 6.1.7601.18015, time stamp: 0x50b8479b Exception code: 0xe0434352 Fault offset: 0x0000000000009e5d Faulting process id: 0x49e4 Faulting application start time: 0x01d3ef21fc30d969 Faulting application path: D:\programs!_dl\TumblThree\TumblThree.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: 62dc5cec-5b18-11e8-b3b8-d43d7eba5dd1

.NET Runtime:

Application: TumblThree.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidCastException at TumblThree.Presentation.Converters.IsBlogInQueueMultiConverter.Convert(System.Object[], System.Type, System.Object, System.Globalization.CultureInfo) at System.Windows.Data.MultiBindingExpression.TransferValue() at System.Windows.Data.MultiBindingExpression.Transfer() at System.Windows.Data.MultiBindingExpression.UpdateTarget(Boolean) at System.Windows.Data.MultiBindingExpression.AttachToContext(Boolean) at System.Windows.Data.MultiBindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean) at MS.Internal.Data.DataBindEngine+Task.Run(Boolean) at MS.Internal.Data.DataBindEngine.Run(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.DispatcherOperation.InvokeImpl() 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 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.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at TumblThree.Presentation.App.Main()

f2d commented 6 years ago

Also, settings to portable did not save, until I closed the program properly after configuring. Otherwise it started with defaults every time. List of blogs restores after setting the path of destination folder, though.

johanneszab commented 6 years ago

Interesting, its crashing in one of my multibinding converter for the datagrid:

Exception Info: System.InvalidCastException at TumblThree.Presentation.Converters.IsBlogInQueueMultiConverter.Convert(System.Object[],

I think that should be relatively easy to figure out although it never has happened to me. One question: Did you hide any of the default columns in the datagrid/blog overview (large thing on the right hand side) by right clicking on the on column headers (e.g. Number of Downloads)?

Thanks for sharing this!

johanneszab commented 6 years ago

Also, settings to portable did not save, until I closed the program properly after configuring.

That's how the code is actually.

f2d commented 6 years ago

No, I did not hide anything, only reordered/resized columns around. Which did not seem to persist between clean program restarts, by the way.