Crash when navigating over blocks in diff view
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.
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.
See https://github.com/AvaloniaUI/AvaloniaEdit/issues/518