Author: cos
Date: Tue Nov 22 02:15:49 2011
New Revision: 1204781

URL: http://svn.apache.org/viewvc?rev=1204781&view=rev
Log:
HDFS-2573. TestFiDataXceiverServer is failing, not testing OOME. Contributed by 
Konstantin Boudnik.

Modified:
    hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
    
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/DataXceiverAspects.aj
    
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/TestFiDataXceiverServer.java

Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1204781&r1=1204780&r2=1204781&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Tue Nov 22 
02:15:49 2011
@@ -1950,6 +1950,8 @@ Release 0.22.0 - Unreleased
     HDFS-2514. Link resolution bug for intermediate symlinks with
     relative targets. (eli)
 
+    HDFS-2573. TestFiDataXceiverServer is failing, not testing OOME (cos)
+
 Release 0.21.1 - Unreleased
 
     HDFS-1466. TestFcHdfsSymlink relies on /tmp/test not existing. (eli)

Modified: 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/DataXceiverAspects.aj
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/DataXceiverAspects.aj?rev=1204781&r1=1204780&r2=1204781&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/DataXceiverAspects.aj
 (original)
+++ 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/DataXceiverAspects.aj
 Tue Nov 22 02:15:49 2011
@@ -1,41 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.datanode;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * This aspect takes care about faults injected into datanode.DataXceiver 
- * class 
- */
-privileged public aspect DataXceiverAspects {
-  public static final Log LOG = LogFactory.getLog(DataXceiverAspects.class);
-
-  pointcut runXceiverThread(DataXceiver xceiver) :
-    execution (* run(..)) && target(xceiver);
-
-  void around (DataXceiver xceiver) : runXceiverThread(xceiver) {
-    if ("true".equals(System.getProperty("fi.enabledOOM"))) {
-      LOG.info("fi.enabledOOM is enabled");
-      throw new OutOfMemoryError("Pretend there's no more memory");
-    } else {
-       proceed(xceiver);
-    }
-  }
-}
\ No newline at end of file

Modified: 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/TestFiDataXceiverServer.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/TestFiDataXceiverServer.java?rev=1204781&r1=1204780&r2=1204781&view=diff
==============================================================================
--- 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/TestFiDataXceiverServer.java
 (original)
+++ 
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/aop/org/apache/hadoop/hdfs/server/datanode/TestFiDataXceiverServer.java
 Tue Nov 22 02:15:49 2011
@@ -1,97 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.datanode;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketAddress;
-import java.util.concurrent.CountDownLatch;
-
-import org.apache.hadoop.conf.Configuration;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-/**
- * This is a test for DataXceiverServer when DataXceiver thread spawning is
- * failed due to OutOfMemoryError. Expected behavior is that DataXceiverServer
- * should not be exited. It should retry again after 30 seconds
- */
-public class TestFiDataXceiverServer {
-
-  @Test(timeout = 30000)
-  public void testOutOfMemoryErrorInDataXceiverServerRun() throws Exception {
-    final CountDownLatch latch = new CountDownLatch(1);
-    ServerSocket sock = new ServerSocket() {
-      @Override
-      public Socket accept() throws IOException {
-        return new Socket() {
-          @Override
-          public InetAddress getInetAddress() {
-            return super.getLocalAddress();
-          }
-
-          @Override
-          public SocketAddress getRemoteSocketAddress() {
-            return new InetSocketAddress(8080);
-          }
-
-          @Override
-          public SocketAddress getLocalSocketAddress() {
-            return new InetSocketAddress(0);
-          }
-
-          @Override
-          public synchronized void close() throws IOException {
-            latch.countDown();
-            super.close();
-          }
-          
-          @Override
-          public InputStream getInputStream() throws IOException {
-            return null;
-          }
-        };
-      }
-    };
-    Thread thread = null;
-    System.setProperty("fi.enabledOOM", "true");
-    DataNode dn = Mockito.mock(DataNode.class);
-    try {
-      Configuration conf = new Configuration();
-      Mockito.doReturn(conf).when(dn).getConf();
-      dn.shouldRun = true;
-      DataXceiverServer server = new DataXceiverServer(sock, conf, dn);
-      thread = new Thread(server);
-      thread.start();
-      latch.await();
-      assertTrue("Not running the thread", thread.isAlive());
-    } finally {
-      System.setProperty("fi.enabledOOM", "false");
-      dn.shouldRun = false;
-      if (null != thread)
-        thread.interrupt();
-      sock.close();
-    }
-  }
-}
\ No newline at end of file


Reply via email to