Timeout Error 4002 in Provisioning Server Console after Clicking "Show Connected Devices"

Timeout Error 4002 in Provisioning Server Console after Clicking "Show Connected Devices"

book

Article ID: CTX133877

calendar_today

Updated On:

Description

The following symptoms occur on Provisioning Services (PVS) Servers when there are multiple streaming NICs assigned to the PVS Server.

Example

An environment having five streaming NICs had the following symptoms:

When Show Connected Devices was clicked in the PVS console, the following symptoms might be experienced:
  • Server timeout error 4002

  • Unusual delay of 3 to 4 minutes to list the connected devices

  • PVS console stops responding
    User-added image

Environment

Caution! Using Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.

Resolution

Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.

Complete the following to resolve the issue:
  1. On the PVS Server machine, under HKLM\software\citrix\provisioningServices\Manager key, create registry DWORD RelayedRequestReplyTimeoutMilliseconds, and set it to 50 ms.
    Note: Ensure to choose decimal, not hexadecimal.

  2. Create a DWORD RelayedRequestTryTimes and set it to 1.
    Default is 2.

  3. Open the PVS Server console and test by selecting the Show Connected Devices command.


Problem Cause

When running the Show Connected Devices command from the PVS console, it sends the request to each interface that is bound to the stream service, to each Target Device, with a default timeout of 5000 milliseconds, twice for each NIC, resulting in a search time of 10 seconds per device, per NIC.

Example

5 NICs, 1 Target Device currently connected would return the Show Connected Device in 50 seconds.

You can clearly see this behavior in the stream log that it is searching each IP address assigned to the streaming service:

2012-05-25 10:05:24,614 [0x00000fdc] DEBUG CManagerConfig::GetRelayedRequestTryTimes -- <RelayedRequestTryTimes> = 22012-05-25 10:05:24,614 [0x00000fdc] DEBUG CManagerConfig::GetRelayedRequestReplyTimeoutMilliseconds -- <RelayedRequestReplyTimeoutMilliseconds> = 50002012-05-31 14:47:46,470 [0x00000e7c] DEBUG CManagerConfig::GetServerIpGroupTryTimes -- <ServerIpGroupTryTimes> = 22012-05-31 14:47:46,470 [0x00000e7c] DEBUG CManagerConfig::GetServerReplyTimeoutMilliseconds -- <ServerReplyTimeoutMilliseconds> = 500002012-05-31 14:47:46,470 [0x00000e7c] DEBUG in CManagerReplyReceiver:SendMessageToServer, requestId = 0
2012-05-31 14:47:46,486 [0x00000e7c] DEBUG in CManagerReplyReceiver:TryEachIpAddressIteratively
2012-05-31 14:47:46,486 [0x00000e7c] DEBUG will try sending request to ip address = 2887140615, port = 6911
2012-05-31 14:47:46,486 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:47:46,501 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:47:46,501 [0x00000e7c] DEBUG to <172.22.69.7:6911>, about to send 80 bytes
2012-05-31 14:47:46,501 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:47:56,516 [0x00000e7c] DEBUG futureResult.get failed with err = 121
2012-05-31 14:47:56,516 [0x00000e7c] ERROR remote request timed out
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting.
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG number of entries in the futureMap = 0
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG will try sending request to ip address = 2887140359, port = 6911
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG to <172.22.68.7:6911>, about to send 80 bytes
2012-05-31 14:47:56,532 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG futureResult.get failed with err = 121
2012-05-31 14:48:06,547 [0x00000e7c] ERROR remote request timed out
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting.
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG number of entries in the futureMap = 0
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG will try sending request to ip address = 2887140103, port = 6911
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG to <172.22.67.7:6911>, about to send 80 bytes
2012-05-31 14:48:06,547 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG futureResult.get failed with err = 121
2012-05-31 14:48:16,562 [0x00000e7c] ERROR remote request timed out
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting.
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG number of entries in the futureMap = 0
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG will try sending request to ip address = 2887139847, port = 6911
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG to <172.22.66.7:6911>, about to send 80 bytes
2012-05-31 14:48:16,562 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG futureResult.get failed with err = 121
2012-05-31 14:48:26,577 [0x00000e7c] ERROR remote request timed out
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting.
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG number of entries in the futureMap = 0
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG will try sending request to ip address = 2887139591, port = 6911
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG to <172.22.65.7:6911>, about to send 80 bytes
2012-05-31 14:48:26,577 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG futureResult.get failed with err = 121
2012-05-31 14:48:36,592 [0x00000e7c] ERROR remote request timed out
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting.
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG number of entries in the futureMap = 0
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG will try sending request to ip address = 2887139335, port = 6911
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG added future for request id 0
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG to <172.22.64.7:6911>, about to send 80 bytes
2012-05-31 14:48:36,592 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message
2012-05-31 14:48:37,247 [0x000030fc] DEBUG in CManagerReplyReceiver::dispatchPacket
2012-05-31 14:48:37,247 [0x000030fc] DEBUG header opcode = -2147221501, request id = 0
2012-05-31 14:48:37,247 [0x000030fc] DEBUG handling a ManagedServer reply
2012-05-31 14:48:37,247 [0x000030fc] DEBUG in CRemoteManagedServer::handleReply
2012-05-31 14:48:37,247 [0x000030fc] DEBUG handling reply for request id = 0
2012-05-31 14:48:37,263 [0x000030fc] DEBUG found future for requestId
2012-05-31 14:48:37,263 [0x000030fc] DEBUG converting reply status for a rebalance reply, successful by default
2012-05-31 14:48:37,278 [0x000030fc] DEBUG in CRemoteManagedServer::harvestReplyDataFromMessage
2012-05-31 14:48:37,278 [0x000030fc] DEBUG reply is for a rebalance request, requestId = 0
2012-05-31 14:48:37,278 [0x000030fc] DEBUG value from reply is 21
2012-05-31 14:48:37,278 [0x000030fc] DEBUG entry added to data result map for requestId = 0
2012-05-31 14:48:37,294 [0x00000e7c] DEBUG futureResult.get succeeded for requestId = 0, actualResult = 0 (Success). Done waiting.

Issue/Introduction

This article provides resolution to the symptoms that occur after clicking “Show Connected Devices” in the Provisioning Server console.