You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sn...@apache.org on 2017/03/08 12:58:36 UTC

[3/6] cassandra git commit: IOException (No such file or directory) closing MessagingService's server socket (locally)

IOException (No such file or directory) closing MessagingService's server socket (locally)

patch by Robert Stupp; reviewed by Michael Kjellman for CASSANDRA-12513


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ae84195
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ae84195
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ae84195

Branch: refs/heads/trunk
Commit: 1ae84195116eb346522c59042df8a2156a3f19f0
Parents: 71c1f98
Author: Robert Stupp <sn...@snazy.de>
Authored: Wed Mar 8 13:55:45 2017 +0100
Committer: Robert Stupp <sn...@snazy.de>
Committed: Wed Mar 8 13:55:45 2017 +0100

----------------------------------------------------------------------
 .../apache/cassandra/net/MessagingService.java  | 23 +++++++++++++++-----
 1 file changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ae84195/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index c784b15..31ea09e 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -812,7 +812,7 @@ public final class MessagingService implements MessagingServiceMBean
                 catch (IOException e)
                 {
                     // see https://issues.apache.org/jira/browse/CASSANDRA-10545
-                    handleIOException(e);
+                    handleIOExceptionOnClose(e);
                 }
         }
         catch (IOException e)
@@ -1102,7 +1102,8 @@ public final class MessagingService implements MessagingServiceMBean
             catch (IOException e)
             {
                 // see https://issues.apache.org/jira/browse/CASSANDRA-8220
-                handleIOException(e);
+                // see https://issues.apache.org/jira/browse/CASSANDRA-12513
+                handleIOExceptionOnClose(e);
             }
             for (Closeable connection : connections)
             {
@@ -1116,12 +1117,22 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
-    private static void handleIOException(IOException e) throws IOException
+    private static void handleIOExceptionOnClose(IOException e) throws IOException
     {
         // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20
-        // see https://bugs.openjdk.java.net/browse/JDK-8050499
-        if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name")))
-            throw e;
+        // see https://bugs.openjdk.java.net/browse/JDK-8050499;
+        // also CASSANDRA-12513
+        if ("Mac OS X".equals(System.getProperty("os.name")))
+        {
+            switch (e.getMessage())
+            {
+                case "Unknown error: 316":
+                case "No such file or directory":
+                    return;
+            }
+        }
+
+        throw e;
     }
 
     public Map<String, Integer> getLargeMessagePendingTasks()