A Configuration Manager 2007 PXE Service Point causes the Windows Deployment Services Server service to crash and hang

 

Following KB Article has been released today as a FAST PUBLISH article.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;2510665

 

Symptoms

When attempting PXE boots via a System Center Configuration Manager 2007 PXE Service Point, PXE boots will initially work and succeed but then all of a sudden stop working. Examining the server where the PXE Service Point and Windows Deployment Services (WDS) are installed reveals that the Windows Deployment Services Server service has crashed and is in a hung state. Attempting to restart the Windows Deployment Services Server service on the WDS server does not resolve the issue. Restarting both the Windows Management Instrumentation and the Windows Deployment Services Server services or restarting the server may temporarily resolve the problem, but the issue will eventually reoccur and WDS will eventually crash again.

Trying to reproduce the issue by continually attempting to PXE boot PCs reveals that although the issue may happen frequently, the issue cannot be reproduced on a consistent basis and that the crashes will happen randomly.

Examining the WDS server where the ConfigMgr 2007 PXE Service Point is installed reveals the following errors in Event Viewer:

System Event Log:
<Date> <Time> Error <WDS_Server> Service Control Manager N/A N/A The Windows Deployment Services Server service terminated unexpectedly. It has done this <x> time(s). The following corrective action will be taken in 120000 milliseconds: Restart the service.

Application Event Log:
<Date> <Time> Information <WDS_Server> WDSServer WDSServer N/A Provider WdsImgSrv was shutdown successfully.
<Date> <Time> Warning <WDS_Server> WDSServer WDSServer N/A An error occurred while trying to initialize provider WdsImgSrv from C:\Windows\system32\WdsImgSrv.dll. Since this provider is not marked as critical, Windows Deployment Services server will continue. Error Information: 0xC1030136
<Date> <Time> Error <WDS_Server> WDSIMGSRV WdsImgSrv N/A An error occurred while trying to initialize the Windows Deployment Services image server. Error Information: 0xC1030136

<Date> <Time> Error <WDS_Server> Application Error {100} N/A Faulting application svchost.exe_WDSServer, version 6 <version>, time stamp <hex_time_stamp>, faulting module ntdll.dll, version <version>, time stamp <hex_time_stamp>, exception code 0xc0000374, fault offset 0x000afaf8, process id <hex_process_id>, application start time <hex_time>

The following error may also be seen:

The Windows Deployment Services (WDS) Server service terminated with service-specific error 16389 (0x4005).

 

Cause

This issue can occur in environments where there are redundant backup routers in place. If IP Helpers for PXE (DHCP relays) are placed on both the primary and backup routers, this may cause a situation where two duplicate PXE request packets are sent to WDS: The original PXE request by the primary router and a duplicate PXE request by the backup redundant router. If the timing is just right, the duplicate second PXE request may overwrite some of the information in WDS from the first original PXE request. This will cause information in WDS for the PXE request to become corrupted and will cause WDS to crash.

 

Workarounds

There are two workarounds to this issue:

  1. Disable the PXE IP Helpers in the backup redundant router so that duplicate PXE requests are not sent. For more information on PXE IP Helpers, please see the below TechNet article:
    Configuring Your Router to Forward Broadcasts
    http://technet.microsoft.com/en-us/library/cc732351(WS.10).aspx#Updating
  2. Set the ConfigMgr 2007 WDS provider to be single threaded instead of multi-threaded. This will cause only one PXE request to be processed at a time by WDS and will prevent the second duplicate PXE request from conflicting with the first original PXE request. To set the ConfigMgr 2007 WDS provider to be single threaded, create the registry key NumberOfThreads with a DWORD value of 1 in the following location:
    32bit WDS server
    HKLM\Software\Microsoft\SMS\PXE

    64bit WDS server
    HKLM\Software\Wow6432Node\Microsoft\SMS\PXE
    This normally should not have a performance impact on the server for PXE requests except in environments where there is a large amount of PXE requests being performed on a constant basis. In environments such as this, it is recommended to use the first workaround.
Advertisements

About arnepeleman

I am a system center enthusiast, IT Geek. View all posts by arnepeleman

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: