0x90d/videoduplicatefinder

[Bug]: VDF crashes upon expanding a duplicate group and loses search results

sspiiroo opened this issue · 3 comments

Environment

  • OS: windows 11 pro Version 10.0.22631 Build 22631
  • VDF 3.0.x - can't remember build date though

Describe the bug

VDF crashes upon collapsing/expanding a duplicate group if the computer has been previously put in a sleep state then woken up.
Steps to reproduce:

  1. have vdf do a search and find duplicates mark some of them then COLLAPSE the group(s) so they don't occupy that much screen space then minimise it into the taskbar;
  2. put PC into sleep (start button in taskbar -> power ->sleep);
  3. turn PC on then bring VDF on and click the button to EXPAND any of the collapsed groups, VDF crashes
  4. re-opening VDF will not open with the last search results, will instead open with an error to which I've added a screenshot below.

Snapshots

Optionally, include snapshots showing the issue.
Screenshot 2024-06-27 065735

Provide crash log from windows event viewer

There are 2 crashlogs in the event viewer marked as "Error" at the exact same time, as it follows:

Application: VDF.GUI.exe
CoreCLR Version: 7.0.1223.47720
.NET Version: 7.0.12
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
   at System.Collections.Generic.List`1.RemoveAt(Int32 index)
   at Avalonia.Controls.DataGridDisplayData.UnloadScrollingElement(Int32 slot, Boolean updateSlotInformation, Boolean wasDeleted)
   at Avalonia.Controls.DataGrid.RemoveNonDisplayedRows(Int32 newFirstDisplayedSlot, Int32 newLastDisplayedSlot)
   at Avalonia.Controls.DataGrid.UpdateRowGroupVisibility(DataGridRowGroupInfo targetRowGroupInfo, Boolean newIsVisible, Boolean isDisplayed)
   at Avalonia.Controls.DataGrid.OnRowGroupHeaderToggled(DataGridRowGroupHeader groupHeader, Boolean newIsVisible, Boolean setCurrent)
   at Avalonia.Controls.DataGridRowGroupHeader.ToggleExpandCollapse(Boolean isVisible, Boolean setCurrent)
   at Avalonia.Controls.DataGridRowGroupHeader.<OnApplyTemplate>b__59_0(Nullable`1 v)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.Reactive.AvaloniaPropertyObservable`2.PropertyChanged(Object sender, AvaloniaPropertyChangedEventArgs e)
   at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaiseCore(ValueStore owner, StyledProperty`1 property, T value, BindingPriority priority, Boolean isOverriddenCurrentValue, Boolean isCoercedDefaultValue)
   at Avalonia.PropertyStore.ValueStore.SetCurrentValue[T](StyledProperty`1 property, T value)
   at Avalonia.AvaloniaObject.SetCurrentValue[T](StyledProperty`1 property, T value)
   at Avalonia.Controls.Primitives.ToggleButton.Toggle()
   at Avalonia.Controls.Primitives.ToggleButton.OnClick()
   at Avalonia.Controls.Button.OnPointerPressed(PointerPressedEventArgs e)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.Interactivity.EventRoute.RaiseEventImpl(RoutedEventArgs e)
   at Avalonia.Interactivity.EventRoute.RaiseEvent(Interactive source, RoutedEventArgs e)
   at Avalonia.Interactivity.Interactive.RaiseEvent(RoutedEventArgs e)
   at Avalonia.Input.MouseDevice.MouseDown(IMouseDevice device, UInt64 timestamp, IInputElement root, Point p, PointerPointProperties properties, KeyModifiers inputModifiers, IInputElement hitTest)
   at Avalonia.Input.MouseDevice.ProcessRawEvent(RawPointerEventArgs e)
   at Avalonia.Input.InputManager.ProcessInput(RawInputEventArgs e)
   at Avalonia.Controls.TopLevel.HandleInput(RawInputEventArgs e)
   at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
   at Avalonia.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
   at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
   at Avalonia.Win32.Win32DispatcherImpl.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl impl)
   at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, ShutdownMode shutdownMode)
   at VDF.GUI.Program.Main(String[] args) in D:\a\videoduplicatefinder\videoduplicatefinder\VDF.GUI\Program.cs:line 30

and the next one:

Faulting application name: VDF.GUI.exe, version: 1.0.0.0, time stamp: 0x6514d416
Faulting module name: KERNELBASE.dll, version: 10.0.22621.3733, time stamp: 0x44653e19
Exception code: 0xe0434352
Fault offset: 0x000000000005f39c
Faulting process id: 0x0xA0AC
Faulting application start time: 0x0x1DAC7C8A7C5DB56
Faulting application path: D:\VDF\VDF3 december\VDF.GUI.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 9beface0-dc1e-4d07-9daa-322d8f0dc3a3
Faulting package full name: 
Faulting package-relative application ID: 

Then it's followed by another entry classified as "Information"If it's easier to read i can provide the the *.evtx files

Thank you. The first crash log shows that its an Avalonia issue. Edit: Tracked with AvaloniaUI/Avalonia#16233 closing as its an external issue