Differences between revisions 3 and 4
Revision 3 as of 2013-10-23 14:23:36
Size: 2008
Comment: fix truncated sentence
Revision 4 as of 2013-12-30 12:52:14
Size: 1968
Comment: your network your problem link
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

TCP Socket Timeouts are caused when a TCP socket times out talking to the far end. 
TCP Socket Timeouts are caused when a TCP socket times out talking to the far end.
Line 8: Line 7:
Line 13: Line 13:
Comparing this exception to the ConnectionRefused error, the latter indicates there is a server at the far end, but no program running on it
can receive inbound connections on the chosen port. A Socket Timeout usually means that there is a something there, but it or the network are not working right
Comparing this exception to the ConnectionRefused error, the latter indicates there is a server at the far end, but no program running on it can receive inbound connections on the chosen port. A Socket Timeout usually means that there is a something there, but it or the network are not working right
Line 18: Line 16:
Line 23: Line 20:
 1. Is that resolved hostname the correct one?   1. Is that resolved hostname the correct one?
Line 30: Line 27:
Remember: These are network configuration problems. Only you can fix them, as it is your network and system configuration that is playing up Remember: These are [[YourNetworkYourProblem|your network configuration problems]] . Only you can fix them.

Socket Timeouts

TCP Socket Timeouts are caused when a TCP socket times out talking to the far end.

Socket timeouts can occur when attempting to connect to a remote server, or during communication, especially long-lived ones.

They can be caused by any connectivity problem on the network, such as:

  • A network partition preventing the two machines from communicating.
  • The remote machine crashing. This cannot easily be distinguished from a network partitioning.
  • A change in the firewall settings of one of the machines preventing communication.
  • The settings are wrong and the client is trying to talk to the wrong machine, one that is not on the network. That could be an error in Hadoop configuration files, or an entry in the DNS tables or the /etc/hosts file.

Comparing this exception to the ConnectionRefused error, the latter indicates there is a server at the far end, but no program running on it can receive inbound connections on the chosen port. A Socket Timeout usually means that there is a something there, but it or the network are not working right

Identifying and Fixing Socket Timeouts

The root cause of a Socket Timeout is a connectivity failure between the machines, so try the usual process

  1. Check the settings: is this the machine you really wanted to talk to?
  2. From the machine that is raising the exception, can you resolve the hostname.
  3. Is that resolved hostname the correct one?
  4. Can you ping the remote host?
  5. Is the target machine running the relevant Hadoop processes?
  6. Can you telnet to the target host and port?
  7. Can you telnet to the target host and port from any other machine?
  8. On the target machine, can you telnet to the port using localhost as the hostname. If this works but external network connections time out, it's usually a firewall issue.

Remember: These are your network configuration problems . Only you can fix them.

SocketTimeout (last edited 2013-12-30 12:52:14 by SteveLoughran)