Profile Picture

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

Posted By Stuart Jones 3 Years Ago

AccessViolationException in Finalizer when using remote desktop and...

Author
Message
Stuart Jones
Problem Posted 3 Years Ago
View Quick Profile
Forum Newbie

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
Last Active: Last Year
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,

Nevron Support
Posted 3 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 3,039, Visits: 3,746
Hi Stuart,

Thank you for reporting this problem.

We were unable to replicate the problem with the current version and the examples of the chart. Can you please tell us the version of the software you're currently using so that we can verify whether its present there as well as the of video board on the machine that has this problem?.

Best Regards,
Nevron Support Team



Stuart Jones
Posted 3 Years Ago
View Quick Profile
Forum Newbie

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
Last Active: Last Year
Posts: 17, Visits: 338
Hi,

We can reproduce the error in the trial of 20.8.17.12

The graphics card of one of the machines that can reproduce the remote desktop problem is NVIDIA Corporation: Quadro P2000/PCIe/SSE2. The drivers are up to date.

One of our software testers can reproduce the remote desktop error in our application but not using the examples application.

I can reproduce an error with the same stack trace in the sample WPF application by:

Replacing the NChartControl in Mainwindow.xaml with
<ContentControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="0" Name="nChartControlContent"/>


and modifying Mainwindow.xaml.cs to overwrite the NChartControl
Nevron.Chart.Wpf.NChartControl nChartControl;
   void ExamplesTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
NExampleTreeNode treeNode = ExamplesTreeView.SelectedItem as NExampleTreeNode;

nChartControl = new Nevron.Chart.Wpf.NChartControl();
nChartControlContent.Content = nChartControl;


Thanks for looking into this
Best regards,
Stuart



Stuart Jones
Posted 3 Years Ago
View Quick Profile
Forum Newbie

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
Last Active: Last Year
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
Posted 3 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)Supreme Being (4,329 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 3,039, Visits: 3,746
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



Stuart Jones
Posted 3 Years Ago
View Quick Profile
Forum Newbie

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
Last Active: Last Year
Posts: 17, Visits: 338
Hi,

Thanks for fixing the first issue.

The NullReferenceException in UpdateFrames only ever happens when using remote desktop.

Best regards,

Stuart



Similar Topics


Reading This Topic