Author: szetszwo Date: Thu Apr 12 23:23:39 2012 New Revision: 1325570 URL: http://svn.apache.org/viewvc?rev=1325570&view=rev Log: Merge r1325052 through r1325569 from trunk.
Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt (contents, props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/bin/hadoop-daemon.sh hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/docs/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/core/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt Thu Apr 12 23:23:39 2012 @@ -346,6 +346,13 @@ Release 2.0.0 - UNRELEASED HADOOP-8264. Remove irritating double double quotes in front of hostname (Bernd Fondermann via bobby) + HADOOP-8270. hadoop-daemon.sh stop action should return 0 for an + already stopped service. (Roman Shaposhnik via eli) + + HADOOP-8144. pseudoSortByDistance in NetworkTopology doesn't work + properly if no local node and first node is local rack node. + (Junping Du) + BREAKDOWN OF HADOOP-7454 SUBTASKS HADOOP-7455. HA: Introduce HA Service Protocol Interface. (suresh) @@ -425,6 +432,9 @@ Release 0.23.3 - UNRELEASED HADOOP-8014. ViewFileSystem does not correctly implement getDefaultBlockSize, getDefaultReplication, getContentSummary (John George via bobby) + HADOOP-7510. Tokens should use original hostname provided instead of ip + (Daryn Sharp via bobby) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt:r1325052-1325569 Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/bin/hadoop-daemon.sh URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/bin/hadoop-daemon.sh?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/bin/hadoop-daemon.sh (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/bin/hadoop-daemon.sh Thu Apr 12 23:23:39 2012 @@ -167,11 +167,9 @@ case $startStop in kill `cat $pid` else echo no $command to stop - exit 1 fi else echo no $command to stop - exit 1 fi ;; Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/docs/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs:r1325052-1325569 Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java:r1325052-1325569 Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java Thu Apr 12 23:23:39 2012 @@ -53,7 +53,6 @@ import org.apache.hadoop.fs.CommonConfig import org.apache.hadoop.ipc.RpcPayloadHeader.*; import org.apache.hadoop.ipc.protobuf.IpcConnectionContextProtos.IpcConnectionContextProto; import org.apache.hadoop.io.IOUtils; -import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.WritableUtils; import org.apache.hadoop.io.DataOutputBuffer; @@ -243,8 +242,8 @@ public class Client { this.remoteId = remoteId; this.server = remoteId.getAddress(); if (server.isUnresolved()) { - throw NetUtils.wrapException(remoteId.getAddress().getHostName(), - remoteId.getAddress().getPort(), + throw NetUtils.wrapException(server.getHostName(), + server.getPort(), null, 0, new UnknownHostException()); @@ -274,9 +273,8 @@ public class Client { } catch (IllegalAccessException e) { throw new IOException(e.toString()); } - InetSocketAddress addr = remoteId.getAddress(); - token = tokenSelector.selectToken(new Text(addr.getAddress() - .getHostAddress() + ":" + addr.getPort()), + token = tokenSelector.selectToken( + SecurityUtil.buildTokenService(server), ticket.getTokens()); } KerberosInfo krbInfo = SecurityUtil.getKerberosInfo(protocol, conf); @@ -305,7 +303,7 @@ public class Client { + protocol.getSimpleName()); this.setName("IPC Client (" + socketFactory.hashCode() +") connection to " + - remoteId.getAddress().toString() + + server.toString() + " from " + ((ticket==null)?"an unknown user":ticket.getUserName())); this.setDaemon(true); } @@ -751,7 +749,6 @@ public class Client { } } - @SuppressWarnings("unused") public InetSocketAddress getRemoteAddress() { return server; } @@ -1159,7 +1156,7 @@ public class Client { call.error.fillInStackTrace(); throw call.error; } else { // local exception - InetSocketAddress address = remoteId.getAddress(); + InetSocketAddress address = connection.getRemoteAddress(); throw NetUtils.wrapException(address.getHostName(), address.getPort(), NetUtils.getHostname(), Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java Thu Apr 12 23:23:39 2012 @@ -344,8 +344,8 @@ public class NetUtils { /** * 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". + * the server binds to "0.0.0.0". This returns "hostname:port" of the server, + * or "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. @@ -353,7 +353,12 @@ public class NetUtils { public static InetSocketAddress getConnectAddress(Server server) { InetSocketAddress addr = server.getListenerAddress(); if (addr.getAddress().isAnyLocalAddress()) { - addr = createSocketAddrForHost("127.0.0.1", addr.getPort()); + try { + addr = new InetSocketAddress(InetAddress.getLocalHost(), addr.getPort()); + } catch (UnknownHostException uhe) { + // shouldn't get here unless the host doesn't have a loopback iface + addr = createSocketAddrForHost("127.0.0.1", addr.getPort()); + } } return addr; } @@ -655,7 +660,7 @@ public class NetUtils { } InetAddress addr = null; try { - addr = InetAddress.getByName(host); + addr = SecurityUtil.getByName(host); if (NetworkInterface.getByInetAddress(addr) == null) { addr = null; // Not a local address } Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java Thu Apr 12 23:23:39 2012 @@ -662,8 +662,8 @@ public class NetworkTopology { */ public void pseudoSortByDistance( Node reader, Node[] nodes ) { int tempIndex = 0; + int localRackNode = -1; if (reader != null ) { - int localRackNode = -1; //scan the array to find the local node & local rack node for(int i=0; i<nodes.length; i++) { if(tempIndex == 0 && reader == nodes[i]) { //local node @@ -693,7 +693,7 @@ public class NetworkTopology { } // put a random node at position 0 if it is not a local/local-rack node - if(tempIndex == 0 && nodes.length != 0) { + if(tempIndex == 0 && localRackNode == -1 && nodes.length != 0) { swap(nodes, 0, r.nextInt(nodes.length)); } } Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/core/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core:r1325052-1325569 Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java?rev=1325570&r1=1325569&r2=1325570&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java Thu Apr 12 23:23:39 2012 @@ -21,6 +21,7 @@ package org.apache.hadoop.ipc; import java.io.Closeable; import java.io.IOException; import java.net.ConnectException; +import java.net.InetAddress; import java.net.InetSocketAddress; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; @@ -41,6 +42,8 @@ import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.retry.RetryPolicies; import org.apache.hadoop.io.retry.RetryProxy; import org.apache.hadoop.ipc.Client.ConnectionId; +import org.apache.hadoop.ipc.TestSaslRPC.TestSaslImpl; +import org.apache.hadoop.ipc.TestSaslRPC.TestSaslProtocol; import org.apache.hadoop.metrics2.MetricsRecordBuilder; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.security.authorize.AuthorizationException; @@ -543,6 +546,19 @@ public class TestRPC { } @Test + public void testServerAddress() throws IOException { + Server server = RPC.getServer(TestProtocol.class, + new TestImpl(), ADDRESS, 0, 5, true, conf, null); + InetSocketAddress bindAddr = null; + try { + bindAddr = NetUtils.getConnectAddress(server); + } finally { + server.stop(); + } + assertEquals(bindAddr.getAddress(), InetAddress.getLocalHost()); + } + + @Test public void testAuthorization() throws Exception { Configuration conf = new Configuration(); conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION,