류짱:Beyond MySelf

Windows server 2003 서비스팩 2 설치 후 서버가 반복적으로 재부팅 본문

Microsoft/Windows Platform

Windows server 2003 서비스팩 2 설치 후 서버가 반복적으로 재부팅

リュちゃん 2011. 7. 1. 11:42

Windows Server 2003 서버의 서비스 팩을 업그레이드 하던 중에 크래시 발생 한 적이 있습니다.
SP2 설치 후 SNP 기능이 enable 되면서 NIC 드라이버와 호환 되지 않아 bug check code 0x7C와 함께 크래시가 발생 한 건입니다.

[환 경]

Windows server 2003 EE x86 + SP2

Hostname : ryuchan.kr

 

[문의사항]

메모리 덤프 분석 (0x7c)

 

[증상]

Windows server 2003 서비스팩 2 설치 후 서버가 반복적으로 재부팅


이벤트 형식정보
이벤트 원본: Save Dump
이벤트 범주없음

이벤트 ID: 1001
날짜
:  201x-xx-xx
시간:  오전
2:19:06
사용자
:  N/A
컴퓨터
: rychan.kr
설명
:
컴퓨터가 오류 검사 후 다시 부팅되었습니다. 오류 검사
: 0x0000007c (0x00000005, 0x8ce53958, 0x8c802c28, 0x8cd78570).
덤프 저장 위치: C:\WINDOWS\MEMORY.DMP.


[
원인]

0x7C 네트워크 드라이버 인터페이스에서 오류가 발생 할 때 생성되는  bugcheck 입니다

해당 서버의 경우 Bxnd52.sys에서 Driver fault가 발생하였습니다.

An Ethernet driver indicated that it received a packet by using a packet descriptor
that the protocol stack is currently using.

[조치방법]

해당 NIC 드라이버(Broadcom x86 Bxnd NDIS5.2 driver)의 최신 버전을 확인 하시고 업데이트 하시기 바랍니다.

snp기능과 관련된 핫 픽스는 sp2가 설치 된 후에만 적용 가능 하므로 sp2와 해당 hotfix를 동시에 설치 할 수 없습니다.만약 다른 머신에서  동일 문제가 발생한다면 (NIC 업데이트가 불가능 할 경우) 아래의 방법대로 서비스팩 적용 후 안전모드(네트워크 연결 x)로 부팅하여 레지스트리를 변경 하여 주시기 바랍니다.|

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Change the following values from 1 to 0. If they are already 0, make no changes

 

EnableTCPChimney

Type: REG_DWORD

Values: 1 -> 0

 

EnableRSS

Type: REG_DWORD

Values: 1 -> 0

 

EnableTCPA

Type: REG_DWORD

Values: 1 -> 0

 

[Debugging Log]

1: kd> .sympath
Symbol search path is: srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols
1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

BUGCODE_NDIS_DRIVER (7c)
This is the NDIS Driver Bugcheck for Windows Server 2003 and later.
For Windows 2000 and Windows XP, see 0xD2, BUGCODE_ID_DRIVER.
Arguments:
Arg1: 00000005, An Ethernet driver indicated receiving a packet using a
 packet descriptor that is currently in use by protocol
 stack.  (Caught by checking stack packet location)
Arg2: 8ce53958, A pointer to Miniport block. !ndiskd.miniport on
 this pointer for more info.
Arg3: 8c802c28, The packet descriptor used by the driver.  Use
 !ndiskd.pkt on this pointer for more info.
Arg4: 8cd78570, A pointer to the packet array that contained this
 packet descriptor. (not much of a use)

Debugging Details:
------------------

*** ERROR: Module load completed but symbols could not be loaded for bxnd52x.sys
*** ERROR: Module load completed but symbols could not be loaded for bxvbdx.sys

DEFAULT_BUCKET_ID:  DRIVER_FAULT
BUGCHECK_STR:  0x7C
PROCESS_NAME:  Idle
CURRENT_IRQL:  2
LAST_CONTROL_TRANSFER:  from f76f7f99 to 80827c63

STACK_TEXT: 
f78aeb64 f76f7f99 0000007c 00000005 8ce53958 nt!KeBugCheckEx+0x1b
f78aebc4 f5990995 8ce53958 8cd78570 00000001 NDIS!ethFilterDprIndicateReceivePacket+0x6fe
WARNING: Stack unwind information not available. Following frames may be wrong.
f78aebf0 f5990adf 8cd78010 8cd7855c 00000000 bxnd52x+0x9995
f78aec1c f782f288 8cd7855c f78aec3c 00000000 bxnd52x+0x9adf
f78aec48 f782f458 8d029010 8cd75000 00000000 bxvbdx+0x5288
f78aec78 f7834037 8cd75000 8d0295a0 f78aec98 bxvbdx+0x5458
f78aecb4 f7834172 00000005 25d4900c 8d029010 bxvbdx+0xa037
f78aecdc f7834543 f772fa40 8d02a9fc f783449e bxvbdx+0xa172
f78aecf8 808320f0 8d02a9fc 8d029010 00000001 bxvbdx+0xa543
f78aed50 8088de1f 00000000 0000000e 00000000 nt!KiRetireDpcList+0xca
f78aed54 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x37


STACK_COMMAND:  kb

FOLLOWUP_IP:
bxnd52x+9995
f5990995 5b              pop     ebx
SYMBOL_STACK_INDEX:  2
SYMBOL_NAME:  bxnd52x+9995
FOLLOWUP_NAME:  MachineOwner
MODULE_NAME: bxnd52x
IMAGE_NAME:  bxnd52x.sys
DEBUG_FLR_IMAGE_TIMESTAMP:  4a4125c5
FAILURE_BUCKET_ID:  0x7C_bxnd52x+9995
BUCKET_ID:  0x7C_bxnd52x+9995
Followup: MachineOwner
---------

1: kd> lmvm bxnd52x
start    end        module name
f5987000 f599a000   bxnd52x    (no symbols)          
    Loaded symbol image file: bxnd52x.sys
    Image path: \SystemRoot\system32\DRIVERS\bxnd52x.sys
   
Image name: bxnd52x.sys
    Timestamp:        Wed Jun 24 03:58:13 2009 (4A4125C5)
    CheckSum:         0001EA98
    ImageSize:        00013000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

kd> !ndiskd.miniport 8ce53958

 Miniport 8ce53958 : , v0.0

    AdapterContext : 8cd78010
    Flags          : 284522d8
                     BUS_MASTER, 64BIT_DMA, SG_LIST
                     IGNORE_TOKEN_RING_ERRORS, DESERIALIZED, RESOURCES_AVAILABLE
                     DOES_NOT_DO_LOOPBACK, MEDIA_CONNECTED, CANNOT_ADD_DELETE_ONE_MULTICAST_ADDRESS
                     SG_DMA,
                     NOT_SUPPORTS_MEDIA_SENSE,
    PnPFlags       : 80410021
                     PM_SUPPORTED, DEVICE_POWER_ENABLED, RECEIVED_START
                     NDIS_WDM_DRIVER,
    MiniportState        : STATE_UNDEFINED
    IfIndex                  : 0
    Ndis5MiniportInNdis6Mode : 0
    InternalResetCount    : 0000
    MiniportResetCount    : 0000
    References            : 3
    UserModeOpenReferences: 0
    PnPDeviceState        : PNP_DEVICE_STARTED
    CurrentDevicePowerState : PowerDeviceD0
    Bus PM capabilities
 DeviceD1:  0
 DeviceD2:  0
 WakeFromD0:  0
 WakeFromD1:  0
 WakeFromD2:  0
 WakeFromD3:  0

 SystemState  DeviceState
Can't get offset of DeviceCaps.DeviceState in ndis!NDIS_MINIPORT_BLOCK
 SystemWake: PowerSystemUnspecified
 DeviceWake: PowerDeviceUnspecified
    Current PnP and PM Settings:          : 00000030
                     DISABLE_WAKE_UP, DISABLE_WAKE_ON_RECONNECT,
    No Resources Allocated
    MediaType      : 802.3
    DeviceObject   : 8ce53858, PhysDO : 8d0d7a80  Next DO: 8d0d7a80
    MapRegisters   : 00000000
    FirstPendingPkt: 00000000
    DriverVerifyFlags  : 00000000
    Miniport Interrupt : 00000000
    Miniport version 0.0
    Miniport Filter List:
   
Miniport Open Block Queue:
      8b23eb20: Protocol 00000000 = Cant get offset of Name in Protocol block!, ProtocolBindingContext 000000001:

kd> !ndiskd.pkt 8c802c28
NDIS_PACKET at 8c802c28

Packet.Private
  PhysicalCount       00000000  Total Length        00000000
  Head                00000000  Tail                00000000
  Pool                00000000  Count               00000000
  Flags               00000000  ValidCounts         00
  NdisPacketFlags     00000000  NdisPacketOobOffset 0000

      Private.Flags          : 00000000
      Private.NdisPacketFlags: 0

 
 

TCP Chimney offload 란 무엇인지?

TCP Chimney Offload란 네트워킹 기술로 Network adapter에서 호스트 컴퓨터의 CPU로 데이터가 이동 될 때 그 작업을 Network adapter에서 처리하게 하여 CPU의 부하를 줄여 주는 것입니다.

Windows server 2003 sp2를 설치 하게 되면 이 기능이 활성화 되고, TCP/IP 패킷 처리의 일부를 OS가 아닌 network adapter 단에서 담당한다. 따라서, CPU packet처리에 필요한 CPU 리소스를 다른 곳에 사용할 수 있게 됩니다.

 

Windows Server 2003에서는 Scalable Networking Pack(SNP)을 통해서 이 기능이 배포되었고, Windows 서비스팩 2에도 포함되어 있습니다.

그러나 해당 기능이 Enable 되어있을 경우 아래와 같은 문제가 발생 하기 때문에 hotfix를 통해 해당 기능을 disable 합니다.

 

Windows Server 2003 SNP가 켜져 있을 때 다음 문제가 발생할 수 있습니다.

VPN 연결을 사용하여 서버에 연결하려고 하면 다음과 같은 오류 메시지가 나타납니다. 오류 800: 연결할 수 없습니다.

• 서버에 RDP(원격 데스크톱 프로토콜) 연결을 설정할 수 없습니다.

LAN에 있는 컴퓨터에서 서버의 공유에 연결할 수 없습니다.

• 클라이언트 컴퓨터를 도메인에 가입시킬 수 없습니다.

Microsoft Outlook을 실행하는 컴퓨터에서 Exchange 서버에 연결할 수 없습니다.

Exchange 서버에 대한 비활성 Outlook 연결이 정리되지 않을 수 있습니다.

• 네트워크 성능이 저하됩니다.

Windows Vista 기반 컴퓨터와 통신할 때 네트워크 성능이 느려질 수 있습니다.

• 서버에서 나가는 FTP 연결을 설정할 수 없습니다.

DHCP(Dynamic Host Configuration Protocol) 서버 서비스가 중단됩니다.

• 도메인에 로그온할 때 성능이 느려질 수 있습니다.

Windows Small Business Server 2003 또는 ISA(Internet Security and Acceleration) Server 뒤에 있는 NAT(Network Address Translation) 클라이언트에서 간헐적으로 연결이 중단될 수 있습니다.

• 일시적인 RPC 통신 오류가 발생합니다.

• 서버가 응답하지 않습니다.

• 서버에서 페이지되지 않은 풀 메모리가 부족합니다.

[참고 자료]
SNP
기능에 대한 대략적인 소개
The Microsoft Windows Server 2003 Scalable Networking Pack release
http://support.microsoft.com/kb/912222/

Bug Check 0x7C: BUGCODE_NDIS_DRIVER

http://msdn.microsoft.com/en-us/library/ms795650.aspx


Windows Server 2003
기반 및 Small Business Server 2003 기반 컴퓨터에서 기본 SNP 기능을 해제하기 위한 업데이트를 사용할 수 있음
http://support.microsoft.com/kb/948496