Our clients are seeing an occasional application crash after ProcessAsyncInvalidations() / ProcessAsyncInvalidationsImpl() are called from within the framework. The stack at the time is as follows:
[[HelperMethodFrame_1OBJ] (System.Environment.FailFast)] System.Environment.FailFast(System.String) WindowsBase_ni!MS.Internal.Invariant.FailFast(System.String, System.String)+35 WindowsBase_ni!MS.Internal.Invariant.Assert(Boolean, System.String)+272185 PresentationFramework_ni!System.Windows.Window.GetWindowMinMax()+51 PresentationFramework_ni!System.Windows.Window.MeasureOverride(System.Windows.Size)+4d PresentationFramework_ni!System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)+585 PresentationCore_ni!System.Windows.UIElement.Measure(System.Windows.Size)+1cc PresentationCore_ni!System.Windows.ContextLayoutManager.UpdateLayout()+1a1 PresentationCore_ni!System.Windows.UIElement.UpdateLayout()+14 Infragistics.Windows.DataPresenter.GridUtilities.ProcessAsyncInvalidationsImpl()+104 Infragistics.Windows.DataPresenter.GridUtilities.ProcessAsyncInvalidations()+a [[HelperMethodFrame_PROTECTOBJ] (System.RuntimeMethodHandle.InvokeMethod)] System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) [[DebuggerU2MCatchHandlerFrame]] mscorlib_ni!System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])+c1 mscorlib_ni!System.Reflection.RuntimeMethodInfo.UnsafeInvoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)+67 mscorlib_ni!System.Delegate.DynamicInvokeImpl(System.Object[])+69 WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)+ad WindowsBase_ni!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)+3a WindowsBase_ni!System.Windows.Threading.DispatcherOperation.InvokeImpl()+ac WindowsBase_ni!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)+38 mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+a7 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+16 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+41 WindowsBase_ni!System.Windows.Threading.DispatcherOperation.Invoke()+5b WindowsBase_ni!System.Windows.Threading.Dispatcher.ProcessQueue()+16b WindowsBase_ni!System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)+5a WindowsBase_ni!MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)+9b WindowsBase_ni!MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)+6b WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)+52 WindowsBase_ni!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)+3a WindowsBase_ni!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)+10e WindowsBase_ni!MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)+f1 WindowsBase_ni!DomainNeutralILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef)+3c [[InlinedCallFrame]] WindowsBase_ni!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)+b1 WindowsBase_ni!System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)+49 WindowsBase_ni!System.Windows.Threading.Dispatcher.Run()+4b RCS.ZettaUI.ControlHost+<>c__DisplayClass6.a()+5d6 mscorlib_ni!System.Threading.ThreadHelper.ThreadStart_Context(System.Object)+6f mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+a7 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+16 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+41 mscorlib_ni!System.Threading.ThreadHelper.ThreadStart()+44
No, I can’t regularly replicate the crash. Do you have any ideas why GridUtilities. ProcessAsyncInvalidations() / ProcessAsyncInvalidationsImpl() would cause the entire application to crash?
ThanksDan
Hi Dan,
Can you provide the exception details, namely the exception type and if there was a message associated with it? It's great that you provided the call stack. I'm able to see in our source code that we do call UpdateLayout on a UIElement but I can't tell from the stack trace why it would crash. The exception type + message might help with that. Also, what version of Infragistics WPF are you using in that application?
Rob,
The Exception Details that I have are:
Unhandled exception at 0x6CFBE4AD (WindowsBase.ni.dll) in Zetta.exe.5608.dmp: 0x80131623.
In Zetta.exe.5608.dmp the assembly instruction at WindowsBase_ni!MS.Internal.Invariant.FailFast(System.String, System.String)+35 in C:\Windows\assembly\NativeImages_v4.0.30319_32\WindowsBase\f0de571ff5c97691112e296ed795c155\WindowsBase.ni.dll from Microsoft Corporation has caused an unknown exception (0x80131623) on thread 197
The version of Infragistics is 14.2.
If you would like, I can get you the dump file.
Dan