Random AccessViolationException

7519
12
02-19-2015 10:42 AM
KeithMacIntyre
New Contributor III

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 bytesC#
xxx.exe!xxx.StartupWindow.LoadScenario.AnonymousMethod__b() Line 540 + 0x8 bytesC#
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 

0 Kudos
12 Replies
KeithMacIntyre1
New Contributor

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 817C++
msvcr120.dll!Concurrency::critical_section::_Acquire_lock(void * _PLockingNode, bool _FHasExternalNode) Line 1202C++
msvcr120.dll!Concurrency::critical_section::lock() Line 1037C++
msvcp120.dll!mtx_do_lock(_Mtx_internal_imp_t * * mtx, const xtime * target) Line 67C++
msvcp120.dll!_Mtx_lock(_Mtx_internal_imp_t * * mtx) Line 153C++
RuntimeCoreNETDesktop.dll!06c5d0e3()Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for RuntimeCoreNETDesktop.dll]
>RuntimeCoreNETDesktop.dll!06c602de()Unknown
[External Code]
0 Kudos
AnttiKajanus1
Occasional Contributor III

Hei, Keith,

What version you are using and if you can you provide a reproducer?

0 Kudos
CharlieMatherne1
New Contributor II

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??

0 Kudos