Exception in Runtime 100.3 when the map is activated after a long time.

3806
13
09-11-2018 02:35 AM
Jean-ChristopheBertolini
Emerging Contributor

Just for information to the developers if this can help then, I don't know where to post:

Esri.ArcGISRuntime.ArcGISRuntimeException
  HResult=0x80131500
  Message=DirectX failure CreateQuery code = 0x887a0005:
c:\daily_r\rtc\runtimecore\c_api\src\mapping\map_view\geo_view.cpp(203) : error : Exception caught in RT_GeoView_pulse
  Source=Esri.ArcGISRuntime
  Arborescence des appels de procédure :
   à Esri.ArcGISRuntime.ArcGISException.HandleCoreError(CoreError error, Boolean throwException)
   à RuntimeCoreNet.GeneratedWrappers.Interop.CheckError(IntPtr errorHandle, Boolean throwOnFailure, GCHandle wrapperHandle)
   à RuntimeCoreNet.GeneratedWrappers.CoreGeoView.Pulse()
   à Esri.ArcGISRuntime.UI.Controls.GeoView.Esri.ArcGISRuntime.Internal.IDxSurfaceSource.Pulse()
   à Esri.ArcGISRuntime.Internal.HostedSurfaceElement.CompositionTarget_Rendering(Object sender, EventArgs e)
   à System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   à System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   à Esri.ArcGISRuntime.Internal.RenderingWeakEventManager.OnCompositeTargetRendering(Object sender, EventArgs e)
   à System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   à System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget)
   à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   à System.Windows.Threading.DispatcherOperation.InvokeImpl()
   à System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   à MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   à MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   à System.Windows.Threading.DispatcherOperation.Invoke()
   à System.Windows.Threading.Dispatcher.ProcessQueue()
   à System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   à System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   à MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   à System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   à System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   à Esri.ArcGISRuntime.Internal.HostedSurfaceElement.SurfaceBackgroundUiWorker(Object arg)
   à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   à System.Threading.ThreadHelper.ThreadStart(Object obj)

13 Replies
dotMorten_esri
Esri Notable Contributor

You dont give much information about the steps you did to reproduce, but I can tell you that the specific DirectX error code means the graphics device was lost.

Are your graphics drivers up to date? (and I don't mean from Windows Update, but directly from the hardware vendor)

0 Kudos
Jean-ChristopheBertolini
Emerging Contributor

It happens only one time. The Graphic Card is an Intel HD Graphics 4600 that looks up to date. If I can reproduce I will give you more details.

Thanks.

PS: v100.3 is much more stable

0 Kudos
AlexVelez
Occasional Contributor

I have some similar problem, but until now i don't have a fix or workaround

Map crash runtime .Net 100.3 

0 Kudos
MichaelBranscomb
Esri Frequent Contributor

Hi,

Because you say "the map is activated after a long time" it's possible the DirectX rendering surface was lost and the API recreated it in order to continue rendering. Normally that works perfectly... but in the current v100.3 release we did find some issues with in this type of scenario when the MapView/SceneView contained specific layers/data. We have made a number of improvements in this area for the upcoming v100.4 release (Q4 2018). Please can you retest with v100.4 when available?

Cheers

Mike

0 Kudos
BradyHoukom
Emerging Contributor

I have the same issue as stated above and stated by Alex Velez in this thread. I updated our solution to the 100.4.0.2207 runtime and I still get the same error:

DirectX failure CreateQuery code = 0x887a0005:
c:\daily_r\rtc\runtimecore\c_api\src\mapping\map_view\geo_view.cpp(205) : error : Exception caught in RT_GeoView_pulse
at Esri.ArcGISRuntime.ArcGISException.HandleCoreError(CoreError error, Boolean throwException)
at RuntimeCoreNet.GeneratedWrappers.Interop.CheckError(IntPtr errorHandle, Boolean throwOnFailure, GCHandle wrapperHandle)
at RuntimeCoreNet.GeneratedWrappers.CoreGeoView.Pulse()
at Esri.ArcGISRuntime.UI.Controls.GeoView.Esri.ArcGISRuntime.Internal.IDxSurfaceSource.Pulse()
at Esri.ArcGISRuntime.Internal.HostedSurfaceElement.CompositionTarget_Rendering(Object sender, EventArgs e)
at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
at Esri.ArcGISRuntime.Internal.RenderingWeakEventManager.OnCompositeTargetRendering(Object sender, EventArgs e)
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 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
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()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
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.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at Esri.ArcGISRuntime.Internal.HostedSurfaceElement.SurfaceBackgroundUiWorker(Object arg)
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
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)

0 Kudos
MichaelBranscomb
Esri Frequent Contributor

Hi,

Please can you share a simple standalone reproducer app? So far we have not been able to reproduce this issue based on the information we have so far.

Specifically we need to know information such as:

- What type of app is it? (WPF? WinForms?)

- Are you using a Map or Scene?

- What layers are in your app?

- What overlays do you have?

- Are you running any logic on a timer or based on interaction (e.g. mouse move).

Cheers

Mike

BradyHoukom
Emerging Contributor

I had no idea that I had 2 accounts. Please help with this.

Additional information (in addition to the week old information below):

We were running 100.3 and the latest graphics drivers. It seemed to have nearly resolved the issue. We upgraded to 100.4 and the app is crashing ever 30 minutes again. I was able to get this to happen by letting my machine sit idle for ~30 minute and the interacting with the map. Another time I was literally loading the map for the first time and the app crashed. 

 

Prior post:

Sorry this has taken so long. We have QA testing but not specifically to get this issue as we arent really sure how to reproduce it at this point as it seems really random. We updated our Intel graphics cards with the latest from Intel as HP didnt have the latest major version. I had to unpack the Intel package and manually extract the latest version and install it. It seemed that we were good for a while but our QA received the error again today after running our application for 30 minutes or so.

 

  • Runtime v100.4.0.2207
  • WPF application
  • MapView control
  • Roads, City, County, State, Township, Section, Numerous Custom FeatureLayer(s) and ArcGISMapImageSublayer(s). Toggling all my layers on doesn't seem to cause the error or make it more frequent.
  • We have overlays for selection marker (only ever 1 at a time), Feature selection overlay (6 of these but not all active at one time)
  • We have lots of interaction logic. If we are drawing a polygon then we hook up to the mouse move to show poly lines. We have lots of point and click interactions if certain 'tools' are active. These tools were not active when we saw the error. 

 

I can attempt to gather a repro app. The problem is that it is so terribly hard to reproduce. 

0 Kudos
ChristianTügel
Emerging Contributor

We had a similar issue with the same Exception.

Using the "Static" RenderingMode for all GrahicOverlays solved it as a workaround in our Case.

KyleGruber
Frequent Contributor

This makes sense, actually.  The beginnings of the stack trace (going from the bottom, up) look like a typical OutOfMemoryException in WPF.  This indicates there's likely some sort of memory leak with dynamic rendering.

0 Kudos