류짱:Beyond MySelf

Stop 0x000000AB (SESSION_HAS_VALID_POOL_ON_EXIT) 본문

Microsoft/Windows Platform

Stop 0x000000AB (SESSION_HAS_VALID_POOL_ON_EXIT)

リュちゃん 2010. 10. 12. 09:48

최근 터미널 서버 세션 종료(Log off)중에 아래와 같은 오류 코드로시스템에 crash가 발생 하는 이슈가 몇 번 발생 하였습니다.
Stop 0x000000AB (SESSION_HAS_VALID_POOL_ON_EXIT)
위 오류 코드와 함께 시스템이 crash 되는 이유는 대 부분 세션 풀에 할 당된 win32k.sys 파일의 버그로 지금까지 많은 hotfix들이 제공 되어 왔습니다.
가장 최근에 릴리즈 된 Hotfix는
http://support.microsoft.com/kb/982362/en-us
 입니다.

만약 위와 같은 문제가 발생 한다면 해당 서버의 Win32k.sys 버전을 확인 한 후 Hotfix를 설치 하시기 바랍니다.

[환 경]

Windows server 2003 EE + SP2

[
증 상]

터미널 서버로 연결 된 사용자가 로그오프 시도하는 중 0x AB stop 오류코드와 함께 시스템이 재 부팅 됨

이벤트 형식:         경고
이벤트 원본:         USER32
이벤트 범주:         없음

이벤트 ID:            1076
날짜
:                    2010-xx-xx
시간:                    오전
10:06:28
사용자
:                 xxx
컴퓨터
:    xxx
설명:이 컴퓨터의 최근 예상치 못한 종료에 대해 xxxx 사용자가 제공한 이유는 다음과 같습니다:시스템 오류: 중지 오류 이유 코드
: 0x805000f
버그
ID:
버그 점검 문자열
: 0x000000ab (0x00000002, 0x0000c8d8, 0x00000000, 0x00000022)
설명
: 0x000000ab (0x00000002, 0x0000c8d8, 0x00000000, 0x00000022)
자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오
.
데이터:0000: 0f 00 05 08


[원 인]
This problem may occur if a driver has Session Pool Memory allocations that are not de-allocated or freed when a user logs off. The bug check 0xAB error is caused by a session driver that does not free its pool allocations before a session unload.
This indicates that there is a bug in the Win32k.sys file,
in the Stmfd.dll file, in the Rdpdd.dll file, or in a video driver

[조치 방법]
문제가 발생한 서버의 win32k.sys 버전 확인 후가장 최근에 릴리즈 된 아래 hotfix를 설치 한 후 모니터링 합니다.

Stop error message on a terminal server that is running Windows Server 2003 Service Pack 1 or Windows Server 2003 Service Pack 2:
"Stop 0x000000AB (SESSION_HAS_VALID_POOL_ON_EXIT)"
http://support.microsoft.com/kb/982362/en-us

[Debugging Log]

kd> !analyze -v

*******************************************************************************

*                                                                             *

*                        Bugcheck Analysis                                    *

*                                                                             *

*******************************************************************************

 

SESSION_HAS_VALID_POOL_ON_EXIT (ab)

Caused by a session driver not freeing its pool allocations prior to a

session unload.  This indicates a bug in win32k.sys, atmfd.dll,

rdpdd.dll or a video driver.

Arguments:

Arg1: 00000002, session ID

Arg2: 0000c8d8, number of paged pool bytes that are leaking

Arg3: 00000000, number of nonpaged pool bytes that are leaking

Arg4: 00000022, total number of paged and nonpaged allocations that are leaking.

             nonpaged allocations are in the upper half of this word,

             paged allocations are in the lower half of this word.

 

Debugging Details:

------------------

OVERLAPPED_MODULE: Address regions for 'v3engine' and 'v3engine.sys' overlap

CORRUPTING_POOL_TAG:  Gpff

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xAB

PROCESS_NAME:  csrss.exe

CURRENT_IRQL:  0

LAST_CONTROL_TRANSFER:  from 80931b59 to 80827e01

STACK_TEXT: 

ef3c9c24 80931b59 000000ab 00000002 0000c8d8 nt!KeBugCheckEx+0x1b

ef3c9c68 809ae023 8589c610 8589c610 00000000 nt!MiCheckSessionPoolAllocations+0x107

ef3c9ce8 8084d87b 8589c610 00000000 857ed020 nt!MiDereferenceSessionFinal+0x183

ef3c9d04 8094e981 8589c610 857ed020 857ed260 nt!MmCleanProcessAddressSpace+0x6b

ef3c9d8c 8094ead5 00000000 00000000 857ed020 nt!PspExitThread+0x5f1

ef3c9da4 8094c008 857ed020 00000000 00000001 nt!PspTerminateThreadByPointer+0x4b

ef3c9ddc 8088fd1e bf919dc6 83fee878 00000000 nt!PspSystemThreadStartup+0x3c

00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

STACK_COMMAND:  kb

 

FOLLOWUP_IP:

nt!MiCheckSessionPoolAllocations+107

80931b59 5f              pop     edi

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  nt!MiCheckSessionPoolAllocations+107

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

DEBUG_FLR_IMAGE_TIMESTAMP:  4b27a5cc

IMAGE_NAME:  memory_corruption

FAILURE_BUCKET_ID:  CORRUPTING_POOLTAG_Gpff

BUCKET_ID:  CORRUPTING_POOLTAG_Gpff

Followup: MachineOwner

---------

 

kd> !process -1 0

PROCESS 8589c610  SessionId: 2  Cid: 0b48    Peb: 7ffdc000  ParentCid: 0124

    DirBase: 3fbb5860  ObjectTable: 00000000  HandleCount:   0.

    Image: csrss.exe

 

kd> !poolused c

   Sorting by Session Paged Pool Consumed

 

  Pool Used:

            NonPaged            Paged

 Tag    Allocs     Used    Allocs     Used

 knlf        0        0        22    49952  GDITAG_FONT_LINK , Binary: win32k.sys

 Gfnt        0        0         1      768  GDITAG_RFONT , Binary: win32k!RFONTOBJ::bRealizeFont

 Gpff        0        0         1      232  Gdi physical font file

 Gtmp        0        0         1      200              Gdi temporary allocations

 Ggls        0        0         8      192  Gdi glyphset

 Gffv        0        0         1       72   Gdi FONTFILEVIEW

 TOTAL           0        0        34    51416

kd> lmvm win32k

start    end        module name

bf800000 bf9d1000   win32k     (deferred)            

Image path: \SystemRoot\System32\win32k.sys

Image name: win32k.sys

Timestamp:        Thu Aug 13 22:39:50 2009 (4A8417A6)

CheckSum:         001CE39D

ImageSize:        001D1000

Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

 

감사합니다.^^