This error occurs randomly, sometimes within a couple of hours of running the application, sometimes, over a day. From the stack trace it appears to be coming from the Runtime. The error occurs even when nothing is happening in our application
ntdll.dll!77ab73e6() | ||
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] | ||
ntdll.dll!77a5863c() | ||
ntdll.dll!77ab5e0d() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab6612() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
ntdll.dll!77a11354() | ||
ntdll.dll!77ab5bca() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab5e0d() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab6612() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
ntdll.dll!77ab5bca() |
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab5e0d() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab6612() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab5e0d() | ||
ntdll.dll!77a583d0() | ||
ntdll.dll!77ab6612() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
ntdll.dll!77a11354() | ||
ntdll.dll!77ab6631() | ||
ntdll.dll!77ab6612() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
msvcr120.dll!0fd1ed63() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
msvcr120.dll!0fd1ee1f() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05afe6f4() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05afe15a() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05afdd14() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05cdde4a() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05cd843e() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05cd7282() | ||
RuntimeCoreNETDesktop.dll!05add73a() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
RuntimeCoreNETDesktop.dll!05adca8d() | ||
user32.dll!762f791c() | ||
user32.dll!762f7b7a() | ||
user32.dll!762f7a7f() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f7b7a() | ||
user32.dll!762f7a7f() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f9859() | ||
[External Code] | ||
> | xxx.exe!xxx.StartupWindow.Start() Line 575 + 0xe bytes | C# |
xxx.exe!xxx.StartupWindow.LoadScenario.AnonymousMethod__b() Line 540 + 0x8 bytes | C# | |
user32.dll!762f791c() | ||
user32.dll!762f7b7a() | ||
user32.dll!762f7a7f() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f7b7a() | ||
user32.dll!762f7a7f() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f97f4() | ||
user32.dll!762f9859() | ||
user32.dll!762f9859() | ||
[External Code] | ||
mscoreei.dll!73baec94() | ||
kernel32.dll!754c9820() | ||
mscoree.dll!73c2bbcc() | ||
kernel32.dll!754c919f() | ||
ntdll.dll!77a2b5af() | ||
ntdll.dll!77a2b57a() |
And the best I could get was the disassembly where the error occurs. The pointer was at 77AB73E6
77AB73BB ja 77AB73BD
77AB73BD add byte ptr [eax],al
77AB73BF add byte ptr [ebx+esi*2-55h],cl
77AB73C3 ja _RtlpValidateHeap@8+2Dh (77AB7421h)
77AB73C5 jae _RtlDebugZeroHeap@8+0C1h (77AB7372h)
77AB73C7 ja _RtlDebugZeroHeap@8+0A8h (77AB7359h)
77AB73C9 nop
77AB73CA nop
77AB73CB nop
77AB73CC nop
_RtlpBreakPointHeap@4:
77AB73CD mov eax,dword ptr fs:[00000030h]
77AB73D3 cmp byte ptr [eax+2],0
77AB73D7 je _RtlpBreakPointHeap@4+21h (77AB73EEh)
77AB73D9 mov byte ptr [_RtlpHeapInvalidBreakPoint (77AD1660h)],1
77AB73E0 mov dword ptr [_RtlpHeapInvalidBadAddress (77AD1664h)],ecx
77AB73E6 int 3
77AB73E7 mov byte ptr [_RtlpHeapInvalidBreakPoint (77AD1660h)],0
77AB73EE ret
77AB73EF nop
77AB73F0 nop
77AB73F1 nop
77AB73F2 nop
77AB73F3 nop
_RtlpValidateHeap@8:
77AB73F4 mov edi,edi
77AB73F6 push ebp
77AB73F7 mov ebp,esp
77AB73F9 sub esp,1Ch
77AB73FC and dword ptr [ebp-0Ch],0
77AB7400 and dword ptr [ebp-4],0
77AB7404 push ebx
77AB7405 push esi
77AB7406 push edi
77AB7407 mov bl,dl
77AB7409 mov edi,ecx
77AB740B xor dl,dl
77AB740D mov dword ptr [ebp-10h],edi
77AB7410 call _RtlpValidateHeapHeaders@8 (77AB78C9h)
77AB7415 test al,al
77AB7417 je _RtlpValidateHeap@8+228h (77AB761Ch)
77AB741D xor eax,eax
77AB741F inc eax
77AB7420 test bl,bl
77AB7422 jne _RtlpValidateHeap@8+3Dh (77AB7431h)
77AB7424 test dword ptr [edi+40h],20000000h
77AB742B je _RtlpValidateHeap@8+24Dh (77AB7641h)
77AB7431 and dword ptr [ebp-14h],0
77AB7435 lea ecx,[edi+0C0h]
77AB743B mov ebx,dword ptr [ecx]
77AB743D and dword ptr [ebp-1Ch],0
77AB7441 jmp _RtlpValidateHeap@8+0B9h (77AB74ADh)
77AB7443 cmp dword ptr [edi+4Ch],0
77AB7447 lea esi,[ebx-8]
77AB744A je _RtlpValidateHeap@8+7Ah (77AB746Eh)
77AB744C mov eax,dword ptr [edi+50h]
77AB744F xor dword ptr [esi],eax
77AB7451 mov al,byte ptr [esi+2]
77AB7454 xor al,byte ptr [esi+1]
77AB7457 xor al,byte ptr [esi]
77AB7459 cmp byte ptr [esi+3],al
77AB745C je _RtlpValidateHeap@8+7Ah (77AB746Eh)
77AB745E push ecx
77AB745F mov edx,esi
77AB7461 mov ecx,edi
77AB7463 call _RtlpAnalyzeHeapFailure@12 (77AB81ADh)
77AB7468 lea ecx,[edi+0C0h]
77AB746E movzx eax,word ptr [esi]
77AB7471 mov ebx,dword ptr [ebx]
77AB7473 mov dword ptr [ebp-8],eax
We seem to be able to somewhat reliably reproduce this in a function that is deleting layers from our map. The layers contain MessageLayers, but it's not determined if that is the reason the crash is happening:
Exception thrown: read access violation.
pPreviousNode was 0x1.
msvcr120.dll!Concurrency::details::LockQueueNode::UpdateQueuePosition(Concurrency::details::LockQueueNode * pPreviousNode) Line 817 | C++ | |
msvcr120.dll!Concurrency::critical_section::_Acquire_lock(void * _PLockingNode, bool _FHasExternalNode) Line 1202 | C++ | |
msvcr120.dll!Concurrency::critical_section::lock() Line 1037 | C++ | |
msvcp120.dll!mtx_do_lock(_Mtx_internal_imp_t * * mtx, const xtime * target) Line 67 | C++ | |
msvcp120.dll!_Mtx_lock(_Mtx_internal_imp_t * * mtx) Line 153 | C++ | |
RuntimeCoreNETDesktop.dll!06c5d0e3() | Unknown | |
[Frames below may be incorrect and/or missing, no symbols loaded for RuntimeCoreNETDesktop.dll] | ||
> | RuntimeCoreNETDesktop.dll!06c602de() | Unknown |
[External Code] |
Hei, Keith,
What version you are using and if you can you provide a reproducer?
I'm running into the following randomly:
System.AccessViolationException was unhandled Message: An unhandled exception of type 'System.AccessViolationException' occurred in WindowsBase.dll Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
A little background:
- I'm running Runtime v100.0
- The app is written using MVVM and Prism IoC
- There's a View (TwoDView) which has a MapView
- TwoDView has a ViewModel (TwoDViewModel) which navigates -- uses RequestNavigate(...) -- to a view (ThreeDView) which has SceneView
- ThreeDViewModel responds to the navigation and applies the camera (calling a controller, created to manage the SceneView using a WeakReference<>) passed via navigation parameters
- The controller calls SetViewpointCameraAsync
There is also a back button in ThreeDView to allow going back to TwoDView for selecting another 3D area for inspection. It seems multiple calls to SetViewpointCameraAsync is causing my issue...if I use SetViewpointCamera...no issue. Any ideas??