Internet Explorer 6 환경에서 창이 닫힐 때, Aceess violation (액세스 위반) 오류가 발생하며 Crash 현상과 관련하여 아래와 같이 정리하였습니다.
[환경]
Windows Server 2000 SP4
Internet Explorer 6
[현상]
사내 업무 웹사이트 사용 시 팝업된 새창이 닫힐 때, Ineternet Explorer 에서 Crash 가 발생합니다.
[원인]
IE 창을 닫힐 때, ActiveX control 이 Licensing Manager .dll file (Licmgr10.dll) 사용하는 경우 발생할 수 있으며 이는 알려진 Bug 사례가 있습니다.
[해결방법]
아래 사이트 KB836143 문서를 참조하여 hotfix 를 다운로드 받아 설치하여 Licmgr10.dll 파일을 업데이트 합니다. 적용을 위해서는 반드시 시스템을 재시작 해야 합니다.
You receive an access violation when you close a window in Internet Explorer
[분석결과]
1. Process dump 를 생성하여 메모리 덤프 분석 진행
(1288.e64): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=055600f8 ecx=00000037 edx=80a4003e esi=055600b0 edi=0a742904
eip=6c9a31c0 esp=0c01fb2c ebp=0c01fbcc iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246
licmgr10!DecrementThreadUsage+0xc:
6c9a31c0 ff4808 dec dword ptr [eax+8] ds:0023:00000008=????????
0:024> kv
ChildEBP RetAddr Args to Child
0c01fb28 6c9a1f3e 055600b0 00000000 6c9a1e91 licmgr10!DecrementThreadUsage+0xc (FPO: [0,0,0])
0c01fb34 6c9a1e91 0a742800 6c9a3616 00000001 licmgr10!CLicenseManager::~CLicenseManager+0x91 (FPO: [Uses EBP] [0,0,4])
0c01fb3c 6c9a3616 00000001 6c9a3582 055600bc licmgr10!CLicenseManager::`vector deleting destructor'+0x8 (FPO: [1,0,1])
0c01fb44 6c9a3582 055600bc 6c9a272b 055600b0 licmgr10!CComponent::CUnknown::Release+0x20 (FPO: [1,0,0])
0c01fb4c 6c9a272b 055600b0 63644268 055600c0 licmgr10!CComponent::PublicRelease+0xd (FPO: [1,0,0])
0c01fb54 63644268 055600c0 00000000 0a742800 licmgr10!CMemoryStream::Release+0xd (FPO: [1,0,0])
0c01fb68 6367b1e3 00000000 00000000 6363b8ed mshtml!CWindow::Passivate+0xc0 (FPO: [0,0,3])
0c01fb74 6363b8ed 0a742800 00000000 0a742d20 mshtml!CBase::PrivateRelease+0x2b (FPO: [1,0,2])
0c01fb84 636c9ddd 0a742800 636a8bb9 0a742810 mshtml!CWindow::PrivateRelease+0x17 (FPO: [1,0,2])
0c01fb8c 636a8bb9 0a742810 63603b9e 0a742d48 mshtml!CScriptControl::Release+0xd (FPO: [1,0,0])
0c01fb94 63603b9e 0a742d48 00000000 0a742d20 mshtml!ClearInterfaceFn+0x13 (FPO: [1,0,0])
0c01fba4 6367b1e3 0a742d20 0a742800 636054ac mshtml!COmWindowProxy::Passivate+0x40 (FPO: [0,0,2])
0c01fbb0 636054ac 0a742d20 0a706a80 0cd63360 mshtml!CBase::PrivateRelease+0x2b (FPO: [1,0,2])
00000000 00000000 00000000 00000000 00000000 mshtml!COmWindowProxy::OnClearWindow+0xad (FPO: [Non-Fpo])
0:024> u
licmgr10!DecrementThreadUsage+0xc:
6c9a31c0 ff4808 dec dword ptr [eax+8]
6c9a31c3 7505 jne licmgr10!DecrementThreadUsage+0x16 (6c9a31ca)
6c9a31c5 e805000000 call licmgr10!DecrementThreadUsage+0x1b (6c9a31cf)
6c9a31ca e979ffffff jmp licmgr10!DecrementProcessUsage (6c9a3148)
6c9a31cf 56 push esi
6c9a31d0 57 push edi
6c9a31d1 ff3540509a6c push dword ptr [licmgr10!g_tlsThreadState (6c9a5040)]
6c9a31d7 ff1584109a6c call dword ptr [licmgr10!_imp__TlsGetValue (6c9a1084)]
0:024> lmvm Licmgr10
start end module name
6c9a0000 6c9a8000 licmgr10 (pdb symbols) c:\symbols\licmgr10.pdb\37EC976A2\licmgr10.pdb
Loaded symbol image file: c:\symbols\licmgr10.dbg\3850E5588000\licmgr10.dbg
Image path: C:\WINNT\system32\licmgr10.dll
Image name: licmgr10.dll
Timestamp: Fri Dec 10 20:34:48 1999 (3850E558)
CheckSum: 0000C249
ImageSize: 00008000
File version: 5.0.2920.0
Product version: 5.0.2920.0
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0412.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft(R) Windows (R) 2000 Operating System
InternalName: licmgr.dll
OriginalFilename: licmgr
ProductVersion: 5.00.2920.0000
FileVersion: 5.00.2920.0000
FileDescription: ActiveX 라이센스 관리자
LegalCopyright: Copyright (C) Microsoft Corp. 1981-1999
[참고자료]
You receive an access violation when you close a window in Internet Explorer
본 자료는 한국 마이크로소프트 기술지원부 자료를 참조하여 일부 재구성 하였습니다.
작성자 : Lai Go / 작성일자 : 2009.08.19