Closed FanIT closed 1 year ago
I have seen improvements in the Avalonia renderer in the last versions, can you try to update Avalonia and see if that fixes the issue?
@beto-rodriguez, i have updated the Avalonia to latest version 0.10.15 today, but the issue still occurs.
This is strange, it seems an Avalonia issue I will take a look at your repo an see if I can find something there.
Thanks. I have update my repo with an last edits. The crash doesn't occur immediately, but after some time.
I'm have catched an exception unhandled in VS.
I checked several versions of LiveChart. Latest working version beta.101 for me.
That helps a lot thanks, I actually changed the Avalonia renderer some versions ago, I will check that up.
Hi, Is there any update/ resolution on this issue? We are experiencing a similar problem with our application. We thought it was resolved by not displaying a tooltip on the chart but it just reduced the occurrence frequency.
@agillet76, hi. No yet. I'm using beta.101 now. The version is working a fine for my app.
We observe the same issue with LiveChart and Avalonia. I tried our test application running under Visual Studio in debug mode with livechart 2.0.0-beta.101, 2.0.0-beta.300 and Avalonia 0.10.15 , 0.10.16 . The crash is sporadic it can be seconds or hours. We are updating our chart at 20 Hz , we use our charts to display temperature/pressure sensor data from our devices in real time. I have posted our test application here: https://github.com/agillet76/livechart-avalonia-crash
Exception thrown: 'System.ArgumentException' in System.Collections.dll
[Visual] Exception in render loop: 'System.ArgumentException: An item with the same key has already been added. Key: [41, System.Collections.Generic.List1[Avalonia.VisualTree.IVisual]] at System.Collections.Generic.TreeSet
1.AddIfNotPresent(T item)
at System.Collections.Generic.SortedDictionary`2.Add(TKey key, TValue value)
at Avalonia.Rendering.DirtyVisuals.Add(IVisual visual) in //src/Avalonia.Visuals/Rendering/DirtyVisuals.cs:line 56
at LiveChartsCore.SkiaSharpView.Avalonia.MotionCanvas.CustomDrawOp.Render(IDrawingContextImpl context)
at Avalonia.Rendering.SceneGraph.CustomDrawOperation.Render(IDrawingContextImpl context) in //src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs:line 30
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 437
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
at Avalonia.Rendering.DeferredRenderer.RenderToLayers(Scene scene) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 492
at Avalonia.Rendering.DeferredRenderer.UpdateRenderLayersAndConsumeSceneIfNeeded(IDrawingContextImpl& context, Boolean recursiveCall) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 378
at Avalonia.Rendering.DeferredRenderer.Render(Boolean forceComposite) in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 323
at Avalonia.Rendering.DeferredRenderer.Avalonia.Rendering.IRenderLoopTask.Render() in //src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 275
at Avalonia.Rendering.RenderLoop.TimerTick(TimeSpan time) in /_/src/Avalonia.Visuals/Rendering/RenderLoop.cs:line 147' (RenderLoop #33163964)
I tested the latest Avalonia preview, and it seems that this issue is gone there.
This branch is ready to work with the latest Avalonia preview package.
https://github.com/beto-rodriguez/LiveCharts2/tree/avalonia-preview
Hi, Beto. Sorry that I didn't reply for a while. I'm testing beta.502 with latest Avalonia 11 preview and i don't watching crashes my a app anymore. Thanks you. Good job. Should i close the issual?
Thanks for the feedback!
Thanks, you. Good job.
Not only my job 😄, but the Avalonia team also improved that, and made it easier for me, maybe we should keep this open until the Avalonia Ga version is released.
A similar issue seems to exist still on the preview version. It happens while moving the chart points via mouse in zoom.
A similar issue seems to exist still on the preview version. It happens while moving the chart points via mouse in zoom.
To be exact, I think this happens while a point is updated out of the collection, and I try to go left of the curve.
@hahagu probably a threading issue and maybe different to this report. I am seriously thinking on change the way tooltips work in the library, maybe you should try https://github.com/beto-rodriguez/LiveCharts2/issues/225#issuecomment-1012488255.
I will close this for now, since it seems that it is fixed win the latest version of Avalonia.
Hello. My project using Avalonia and LiveChart. I have a suspiction that crashes in my app because I updated LiveChart beta.80 to beta.300. If i'm running my app in debug mode from Visual Studio to work fine, but if i'm running publish version, getting crash of the app. If i roll back to beto.80 then work fine again. In Windows event log have a event 1026 .NET Runtime.
My ChartModel