瀏覽代碼

HADOOP-12418. TestRPC.testRPCInterruptedSimple fails intermittently. Contributed Kihwal Lee.
(cherry picked from commit 01b103f4ff2e8ee7e71d082885436c5cb7c6be0b)

Conflicts:
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java

Kihwal Lee 9 年之前
父節點
當前提交
e327233e80

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -739,6 +739,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12474. MiniKMS should use random ports for Jetty server by default.
     (Mingliang Liu via wheat9)
 
+    HADOOP-12418. TestRPC.testRPCInterruptedSimple fails intermittently.
+    (kihwal)
+
 Release 2.7.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 7 - 4
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java

@@ -28,6 +28,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.Closeable;
+import java.io.InterruptedIOException;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.lang.management.ThreadInfo;
@@ -884,11 +885,13 @@ public class TestRPC {
       proxy.ping();
       fail("Interruption did not cause IPC to fail");
     } catch (IOException ioe) {
-      if (!ioe.toString().contains("InterruptedException")) {
-        throw ioe;
+      if (ioe.toString().contains("InterruptedException") ||
+          ioe instanceof InterruptedIOException) {
+        // clear interrupt status for future tests
+        Thread.interrupted();
+        return;
       }
-      // clear interrupt status for future tests
-      Thread.interrupted();
+      throw ioe;
     } finally {
       server.stop();
     }