Code Monkey home page Code Monkey logo

Comments (11)

wieslawsoltes avatar wieslawsoltes commented on July 18, 2024 2

@soosr Do we need this in the release?

Seems like an edge case (Pressing PageDown when the list is just updating), I would say we can release without it.

@wieslawsoltes How sure are you about your fix and is it ready? If so we can squeeze it in but I think we are good without it too.

Not ready, it need more refactoring and definitely testing. We should skip it for release. It's and edge case.

from walletwasabi.

soosr avatar soosr commented on July 18, 2024 1

@soosr Do we need this in the release?

Seems like an edge case (Pressing PageDown when the list is just updating), I would say we can release without it.

@wieslawsoltes How sure are you about your fix and is it ready? If so we can squeeze it in but I think we are good without it too.

from walletwasabi.

soosr avatar soosr commented on July 18, 2024 1

Closing the issue as we haven't been able to repro since it was reported, plus several fixed happened, fixes that can be related to this issue.

Reopen if someone meets with this again.

from walletwasabi.

wieslawsoltes avatar wieslawsoltes commented on July 18, 2024

I think what could happen is you pressed PageDown key and it that time selection must have changed in history list (e.g. new conjoin transaction arrived and list was updated) and resulted in change in SelectedIndex (IndexPath).
https://github.com/AvaloniaUI/Avalonia.Controls.TreeDataGrid/blob/a9e59bb7fd28116575b2e3da270df1c00aa722ee/src/Avalonia.Controls.TreeDataGrid/Selection/TreeDataGridRowSelectionModel.cs#L232

from walletwasabi.

wieslawsoltes avatar wieslawsoltes commented on July 18, 2024

I think what could happen is you pressed PageDown key and it that time selection must have changed in history list (e.g. new conjoin transaction arrived and list was updated) and resulted in change in SelectedIndex (IndexPath). https://github.com/AvaloniaUI/Avalonia.Controls.TreeDataGrid/blob/a9e59bb7fd28116575b2e3da270df1c00aa722ee/src/Avalonia.Controls.TreeDataGrid/Selection/TreeDataGridRowSelectionModel.cs#L232

And we reset SelectedIndex each time:
https://github.com/zkSNACKs/WalletWasabi/blob/3e151ca170480dbf2de8e652c1316b3bfd8bf532/WalletWasabi.Fluent/ViewModels/Wallets/Home/History/HistoryViewModel.cs#L217

https://github.com/zkSNACKs/WalletWasabi/blob/3e151ca170480dbf2de8e652c1316b3bfd8bf532/WalletWasabi.Fluent/ViewModels/Wallets/Home/History/HistoryViewModel.cs#L226

from walletwasabi.

molnard avatar molnard commented on July 18, 2024

@soosr Do we need this in the release?

from walletwasabi.

Kruwed avatar Kruwed commented on July 18, 2024

I had the same crash on 2.0.4 main release/Ubuntu while the computer was idle, but some of the lines referenced are different:

Exception type: System.IndexOutOfRangeException

Message: Index was outside the bounds of the array.

Stack Trace: at Avalonia.Controls.IndexPath.get_Item(Int32 index) in //src/Avalonia.Controls.TreeDataGrid/IndexPath.cs:line 64
at Avalonia.Controls.Selection.TreeDataGridRowSelectionModel1.Avalonia.Controls.Selection.ITreeDataGridSelectionInteraction.OnPreviewKeyDown(TreeDataGrid sender, KeyEventArgs e) in /_/src/Avalonia.Controls.TreeDataGrid/Selection/TreeDataGridRowSelectionModel.cs:line 251 at Avalonia.Controls.TreeDataGrid.OnPreviewKeyDown(Object o, KeyEventArgs e) in /_/src/Avalonia.Controls.TreeDataGrid/TreeDataGrid.cs:line 326 at Avalonia.Interactivity.EventRoute.RaiseEventImpl(RoutedEventArgs e) in /_/src/Avalonia.Interactivity/EventRoute.cs:line 118 at Avalonia.Interactivity.EventRoute.RaiseEvent(IInteractive source, RoutedEventArgs e) in /_/src/Avalonia.Interactivity/EventRoute.cs:line 79 at Avalonia.Interactivity.Interactive.RaiseEvent(RoutedEventArgs e) in /_/src/Avalonia.Interactivity/Interactive.cs:line 123 at Avalonia.Input.KeyboardDevice.ProcessRawEvent(RawInputEventArgs e) in /_/src/Avalonia.Input/KeyboardDevice.cs:line 248 at Avalonia.Input.InputManager.ProcessInput(RawInputEventArgs e) in /_/src/Avalonia.Input/InputManager.cs:line 37 at Avalonia.RawEventGrouper.DispatchFromQueue() in /_/src/Shared/RawEventGrouping.cs:line 61 at Avalonia.Threading.JobRunner.RunJobs(Nullable1 priority) in /
/src/Avalonia.Base/Threading/JobRunner.cs:line 37
at Avalonia.X11.X11PlatformThreading.HandleX11(CancellationToken cancellationToken) in //src/Avalonia.X11/X11PlatformThreading.cs:line 199
at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /
/src/Avalonia.X11/X11PlatformThreading.cs:line 205
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in //src/Avalonia.Base/Threading/Dispatcher.cs:line 65
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /
/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 120
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 209
at WalletWasabi.Fluent.Desktop.WasabiAppExtensions.<>c__DisplayClass0_0.b__0()
at WalletWasabi.Daemon.WasabiApplication.RunAsync(Func`1 afterStarting)
at WalletWasabi.Fluent.Desktop.WasabiAppExtensions.RunAsGuiAsync(WasabiApplication app)
at WalletWasabi.Fluent.Desktop.Program.Main(String[] args)

Inner Exception:

from walletwasabi.

kiminuo avatar kiminuo commented on July 18, 2024

(edge case -> corner case)

from walletwasabi.

wieslawsoltes avatar wieslawsoltes commented on July 18, 2024

Might be related AvaloniaUI/Avalonia.Controls.TreeDataGrid#227

from walletwasabi.

MaxHillebrand avatar MaxHillebrand commented on July 18, 2024

what's up with this?

from walletwasabi.

wieslawsoltes avatar wieslawsoltes commented on July 18, 2024

We have updated TreeDataGrid with many bug fixes, can anyone repro again ?

from walletwasabi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.