Remote desktop hangs & disconnects

remote desktopwindows-server-2008-r2

My remote desktop session to one of our domain controllers drops and freezes while trying to interact with the server. The symptoms of this issue do not closely match the other related questions here on serverfault.

  • The server is on the same LAN subnet as my PC (it is one room over from me)
  • I can transfer a 100 MB file from my PC to the server in ~10 sec
  • My ping latency is <1ms, TTL = 128

The server is not resource constrained

  • ~9gb of unused RAM at all times
  • The CPU has 4 cores and none have spiked above 30% demand
  • The hard disk demand appears to be low
    • The server functions only as a domain controller

The session typically hangs when trying to interact with the system (pulling up task manager, opening event logs etc). Strangely, performance monitor will display gaps in the line chart when the system hangs. Microsoft's KB on performance monitor troubleshooting suggests that this only happens when a system is overloaded.

  • Could the remote desktop session be single handedly overloading the capabilities of this server?
  • Would system logs indicate that the system was becoming overburdened?
  • Could a setting or behavior in the NIC induce these symptoms?

Server specs:

  • Dell PowerEdge R310
  • Intel Xeon x3430 @ 2.4GHZ
  • Broadcom BCM5716C NetXtremeII GigaBit
  • Server 2008 R2 64 Bit

The server behaves normally when I log into it from the KVM switch on the rack. Any suggestions about where to look or other common causes would be appreciated!

Best Answer

Ok! This was terrifyingly easy to solve once I was able to invoke an error.

I just had to change the NIC from auto-negotiate to 1gb full duplex (we have a 1gb switch connected to the servers).

The error message I received was

TermDD Event ID 56: The terminal server security layer detected an error in the protocol stream and has disconnected the client

The translated binary error code was C00A0006 which resolves to STATUS_CTX_CLOSE_PENDING (see this Technet blog about translating the binary error codes)

I believe that when the NIC was trying to negotiate the speed of its connection it would momentarily lose the connection. This post on deusexmachina.org.uk helped me pinpoint the NIC as being the potential issue.