You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ra...@apache.org on 2008/03/13 04:31:17 UTC

svn commit: r636621 - in /hadoop/core/trunk: CHANGES.txt src/java/org/apache/hadoop/net/NetUtils.java src/test/org/apache/hadoop/ipc/TestIPC.java src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java src/test/org/apache/hadoop/ipc/TestRPC.java

Author: rangadi
Date: Wed Mar 12 20:31:14 2008
New Revision: 636621

URL: http://svn.apache.org/viewvc?rev=636621&view=rev
Log:
HADOOP-2974. IPC unit tests used "0.0.0.0" to connect to server, which
is not always supported. (rangadi)

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/java/org/apache/hadoop/net/NetUtils.java
    hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPC.java
    hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java
    hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestRPC.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=636621&r1=636620&r2=636621&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Wed Mar 12 20:31:14 2008
@@ -181,6 +181,9 @@
     HADOOP-2657. A flush call on the DFSOutputStream flushes the last
     partial CRC chunk too.  (dhruba)
 
+    HADOOP-2974. IPC unit tests used "0.0.0.0" to connect to server, which
+    is not always supported. (rangadi)
+
 Release 0.16.1 - 2008-03-13
 
   INCOMPATIBLE CHANGES

Modified: hadoop/core/trunk/src/java/org/apache/hadoop/net/NetUtils.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/net/NetUtils.java?rev=636621&r1=636620&r2=636621&view=diff
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/net/NetUtils.java (original)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/net/NetUtils.java Wed Mar 12 20:31:14 2008
@@ -32,6 +32,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.ipc.Server;
 import org.apache.hadoop.ipc.VersionedProtocol;
 import org.apache.hadoop.util.ReflectionUtils;
 
@@ -227,6 +228,23 @@
       }
     return l;
     }
+  }
+  
+  /**
+   * Returns InetSocketAddress that a client can use to 
+   * connect to the server. Server.getListenerAddress() is not correct when
+   * the server binds to "0.0.0.0". This returns "127.0.0.1:port" when
+   * the getListenerAddress() returns "0.0.0.0:port".
+   * 
+   * @param server
+   * @return socket address that a client can use to connect to the server.
+   */
+  public static InetSocketAddress getConnectAddress(Server server) {
+    InetSocketAddress addr = server.getListenerAddress();
+    if (addr.getAddress().getHostAddress().equals("0.0.0.0")) {
+      addr = new InetSocketAddress("127.0.0.1", addr.getPort());
+    }
+    return addr;
   }
   
   /**

Modified: hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPC.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPC.java?rev=636621&r1=636620&r2=636621&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPC.java (original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPC.java Wed Mar 12 20:31:14 2008
@@ -22,6 +22,7 @@
 
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.net.NetUtils;
 
 import java.util.Random;
 import java.io.IOException;
@@ -140,7 +141,7 @@
                          int clientCount, int callerCount, int callCount)
     throws Exception {
     Server server = new TestServer(handlerCount, handlerSleep);
-    InetSocketAddress addr = server.getListenerAddress();
+    InetSocketAddress addr = NetUtils.getConnectAddress(server);
     server.start();
 
     Client[] clients = new Client[clientCount];
@@ -179,7 +180,7 @@
 
     InetSocketAddress[] addresses = new InetSocketAddress[addressCount];
     for (int i = 0; i < addressCount; i++) {
-      addresses[i] = servers[i%serverCount].getListenerAddress();
+      addresses[i] = NetUtils.getConnectAddress(servers[i%serverCount]);
     }
 
     Client[] clients = new Client[clientCount];

Modified: hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java?rev=636621&r1=636620&r2=636621&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java (original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestIPCServerResponder.java Wed Mar 12 20:31:14 2008
@@ -29,6 +29,7 @@
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.net.NetUtils;
 
 /**
  * This test provokes partial writes in the server, which is 
@@ -127,7 +128,7 @@
     Server server = new TestServer(handlerCount, handlerSleep);
     server.start();
 
-    InetSocketAddress address = server.getListenerAddress();
+    InetSocketAddress address = NetUtils.getConnectAddress(server);
     Client[] clients = new Client[clientCount];
     for (int i = 0; i < clientCount; i++) {
       clients[i] = new Client(BytesWritable.class, conf);

Modified: hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestRPC.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestRPC.java?rev=636621&r1=636620&r2=636621&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestRPC.java (original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/ipc/TestRPC.java Wed Mar 12 20:31:14 2008
@@ -33,6 +33,7 @@
 import org.apache.hadoop.io.Writable;
 
 import org.apache.hadoop.ipc.VersionedProtocol;
+import org.apache.hadoop.net.NetUtils;
 
 /** Unit tests for RPC. */
 public class TestRPC extends TestCase {
@@ -190,7 +191,7 @@
     try {
     server.start();
 
-    InetSocketAddress addr = server.getListenerAddress();
+    InetSocketAddress addr = NetUtils.getConnectAddress(server);
 
     // create a client
     proxy = (TestProtocol)RPC.getProxy(
@@ -231,7 +232,7 @@
     try {
     server.start();
 
-    InetSocketAddress addr = server.getListenerAddress();
+    InetSocketAddress addr = NetUtils.getConnectAddress(server);
     proxy = (TestProtocol)RPC.getProxy(
         TestProtocol.class, TestProtocol.versionID, addr, conf);