AccessViolationException in Finalizer when using remote desktop and rendering to a window


AccessViolationException in Finalizer when using remote desktop and...
Author
Message
Stuart Jones
Stuart Jones
Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)
Group: Forum Members
Posts: 17, Visits: 338
Hello,

We have some charts that contain a large number of points. Using RenderSurface.Window massively improved performance of those charts.

Since then occasionally we would get an AccessViolationException in the finalizer. Ensuring we call Dispose fixed most of the errors however it can still happen if we start our application using remote desktop and disconnect.

We have had problems in our own codebase with finalizers accessing managed objects, it looks like that might be happening here. 

at Nevron.GraphicsGL.l1IlllII1l.glDeleteTextures(Int32 n, UInt32* textures)
 at Nevron.GraphicsGL.l1Ill1lI1l.l1IlII11lI(l1l1I1lll texture)
 at Nevron.GraphicsGL.l1Ill111ll.Dispose()
 at Nevron.GraphicsGL.l1Ill1l111.Dispose()
 at Nevron.GraphicsGL.l1Illl1I11.Dispose()
 at Nevron.GraphicsCore.l1lI1Ill1.l11l1lIlI1()
 at Nevron.GraphicsCore.l1lI1Ill1.Clear()
 at Nevron.GraphicsCore.l1lI1Ill1.Finalize()

Would it be possible for you to fix this? We are happy with the nevron charting functionality and would pay for an upgrade.

Best regards,
Replies
Stuart Jones
Stuart Jones
Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)
Group: Forum Members
Posts: 17, Visits: 338
Hi,

We also get an AccessViolationException with a different stack trace in remote desktop.

The graphics card is NVIDIA Corporation: Quadro P2000/PCIe/SSE2. Quadro cards can use hardware rendering over remote desktop.

Exception:
System.AccessViolationException

Message:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Source:
Nevron.GraphicsGL

Stack Trace:
  at Nevron.GraphicsGL.l1IlllII1l.glDrawElements(Int32 mode, Int32 count, Int32 type, Void* indices)
  at Nevron.GraphicsGL.l1IlllI111.RenderIndexed(l111l111I& cmd)
  at Nevron.GraphicsCore.l1l1l1III.FlushCommandBuffer()
  at Nevron.GraphicsGL.l1Illl11II.WaitForRenderingToComplete()
  at Nevron.Chart.NContentPanel.RenderInternal(NChartRenderingContext context)
  at Nevron.Chart.NPanel.RenderInternal(NChartRenderingContext context)
  at Nevron.Chart.NContentPanel.RenderInternal(NChartRenderingContext context)
  at Nevron.Chart.NRootPanel.RenderInternal(NChartRenderingContext context)
  at Nevron.Chart.Ndocument.Paint(NChartRenderingContext context, Boolean l1l1I1II11I, Boolean recalc)
  at Nevron.Chart.Wpf.NWpfGLWindowRenderSurface.Paint(DrawingContext context, NWpfChartControlView view)
  at Nevron.Chart.Wpf.NChartControl.OnRender(DrawingContext drawingContext)
  at System.Windows.UIElement.Arrange(Rect finalRect)
  at System.Windows.ContextLayoutManager.UpdateLayout()
  at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
  at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
  at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
  at System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
  at System.Windows.Threading.DispatcherOperation.InvokeImpl()
  at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
  at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
  at System.Windows.Threading.DispatcherOperation.Invoke()
  at System.Windows.Threading.Dispatcher.ProcessQueue()

Nevron Support
Nevron Support
Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)
Group: Administrators
Posts: 3.1K, Visits: 4.2K
Hi Stuart,
Just a short note that the first issue has been corrected (calling glDeleteTextures when no OpenGL context is selected) and it will not appear in the 2021 releases of the control. We cannot replicate the second reported issue - does it happen only when you are using the machine using remote desktop?


Best Regards,
Nevron Support Team


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search