sourcegit icon indicating copy to clipboard operation
sourcegit copied to clipboard

Crash when navigating over blocks in diff view

Open Mingun opened this issue 4 months ago • 2 comments

Yesterday this crash happened twice when I pressing "next difference" (first crash) and "previous difference" (second) button in diff view. After several successful hops SourceGit crashed with the following log file (content the same in both cases, except time and memory usage):

Crash::: AvaloniaEdit.Rendering.VisualLinesInvalidException: Exception of type 'AvaloniaEdit.Rendering.VisualLinesInvalidException' was thrown.

----------------------------
Version: 2025.31.0.0
OS: Unix 6.8.0.78
Framework: .NETCoreApp,Version=v9.0
Source: <unknown>
Thread Name: Unnamed
User: mingun
App Start Time: 25.08.2025 17:22:04
Exception Time: 25.08.2025 17:23:22
Memory Usage: 639 MB
----------------------------

AvaloniaEdit.Rendering.VisualLinesInvalidException: Exception of type 'AvaloniaEdit.Rendering.VisualLinesInvalidException' was thrown.
   at AvaloniaEdit.Rendering.TextView.get_VisualLines() + 0x2e
   at AvaloniaEdit.Rendering.BackgroundGeometryBuilder.<GetRectsForSegmentImpl>d__21.MoveNext() + 0x276
   at AvaloniaEdit.Rendering.BackgroundGeometryBuilder.AddSegment(TextView, ISegment) + 0x63
   at AvaloniaEdit.Editing.SelectionLayer.Render(DrawingContext) + 0x1ac
   at Avalonia.Rendering.Composition.CompositingRenderer.UpdateCore() + 0x9a
   at Avalonia.Rendering.Composition.CompositingRenderer.Update() + 0x64
   at Avalonia.Rendering.Composition.Compositor.CommitCore() + 0xb5
   at Avalonia.Rendering.Composition.Compositor.Commit() + 0x16
   at Avalonia.Media.MediaContext.CommitCompositor(Compositor) + 0x53
   at Avalonia.Media.MediaContext.CommitCompositorsWithThrottling() + 0x95
   at Avalonia.Media.MediaContext.CompositionBatchFinished(Compositor, CompositionBatch) + 0x7a
   at Avalonia.Threading.DispatcherOperation.InvokeCore() + 0x1ba
   at Avalonia.Threading.DispatcherOperation.Execute() + 0x3e
   at Avalonia.Threading.Dispatcher.ExecuteJob(DispatcherOperation) + 0x75
   at Avalonia.Threading.Dispatcher.ExecuteJobsCore(Boolean) + 0x2c
   at Avalonia.Threading.Dispatcher.Signaled() + 0x41
   at Avalonia.X11.X11PlatformThreading.CheckSignaled() + 0x56
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken) + 0x280
   at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl) + 0x109
   at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame) + 0x9b
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken) + 0x124
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.StartCore(String[]) + 0x76
   at SourceGit.App.Main(String[] args) + 0xe0

Obvious, this is some bug in AvaloniaUI, but maybe this is known bug that is fixed in new versions?

I'm on Ubuntu 24.04.3 LTS.

For the reference, my preference.json file: preference.json

SourceGit 2025.31.

Mingun avatar Aug 26 '25 06:08 Mingun

Actually, this should be an issue with AvaloniaEdit. I have encountered it several times, but when I try to reproduce it in Debug mode, this issue cannot be reproduced.

love-linger avatar Aug 26 '25 07:08 love-linger

See https://github.com/AvaloniaUI/AvaloniaEdit/issues/518

love-linger avatar Sep 03 '25 06:09 love-linger