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 2015/10/19 14:59:23 UTC

[1/2] cassandra git commit: JDK bug from CASSANDRA-8220 makes drain die early also

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 289b7b7ce -> 0bfa26d60


JDK bug from CASSANDRA-8220 makes drain die early also

patch by Jeremiah Jordan; reviewed by Robert Stupp for CASSANDRA-10545


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

Branch: refs/heads/cassandra-2.2
Commit: b84ed1176c015552550f30629e240c320a00001b
Parents: 27c8011
Author: Jeremiah Jordan <je...@datastax.com>
Authored: Mon Oct 19 14:56:02 2015 +0200
Committer: Robert Stupp <sn...@snazy.de>
Committed: Mon Oct 19 14:56:02 2015 +0200

----------------------------------------------------------------------
 .../apache/cassandra/net/MessagingService.java  | 30 ++++++++++++++++++--
 1 file changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b84ed117/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 d7825d4..724518c 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -743,7 +743,15 @@ public final class MessagingService implements MessagingServiceMBean
         try
         {
             for (SocketThread th : socketThreads)
-                th.close();
+                try
+                {
+                    th.close();
+                }
+                catch (IOException e)
+                {
+                    // see https://issues.apache.org/jira/browse/CASSANDRA-10545
+                    handleIOException(e);
+                }
         }
         catch (IOException e)
         {
@@ -1013,8 +1021,16 @@ public final class MessagingService implements MessagingServiceMBean
 
         void close() throws IOException
         {
-            logger.debug("Closing accept() thread");
-            server.close();
+            logger.trace("Closing accept() thread");
+            try
+            {
+                server.close();
+            }
+            catch (IOException e)
+            {
+                // see https://issues.apache.org/jira/browse/CASSANDRA-8220
+                handleIOException(e);
+            }
             for (Closeable connection : connections) 
             {
                 connection.close();
@@ -1027,6 +1043,14 @@ public final class MessagingService implements MessagingServiceMBean
         }
     }
 
+    private static void handleIOException(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;
+    }
+
     public Map<String, Integer> getCommandPendingTasks()
     {
         Map<String, Integer> pendingTasks = new HashMap<String, Integer>();


[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by sn...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/cassandra-2.2
Commit: 0bfa26d6011b6e1c79c164a1acc29884d8157ade
Parents: 289b7b7 b84ed11
Author: Robert Stupp <sn...@snazy.de>
Authored: Mon Oct 19 14:56:41 2015 +0200
Committer: Robert Stupp <sn...@snazy.de>
Committed: Mon Oct 19 14:56:41 2015 +0200

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bfa26d6/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 2a63553,724518c..4aafdd1
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -1024,14 -1028,10 +1032,10 @@@ public final class MessagingService imp
              }
              catch (IOException e)
              {
-                 // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20
                  // see https://issues.apache.org/jira/browse/CASSANDRA-8220
-                 // 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;
+                 handleIOException(e);
              }
- 
 -            for (Closeable connection : connections) 
 +            for (Closeable connection : connections)
              {
                  connection.close();
              }
@@@ -1043,11 -1043,19 +1047,19 @@@
          }
      }
  
+     private static void handleIOException(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;
+     }
+ 
 -    public Map<String, Integer> getCommandPendingTasks()
 +    public Map<String, Integer> getLargeMessagePendingTasks()
      {
 -        Map<String, Integer> pendingTasks = new HashMap<String, Integer>();
 +        Map<String, Integer> pendingTasks = new HashMap<String, Integer>(connectionManagers.size());
          for (Map.Entry<InetAddress, OutboundTcpConnectionPool> entry : connectionManagers.entrySet())
 -            pendingTasks.put(entry.getKey().getHostAddress(), entry.getValue().cmdCon.getPendingMessages());
 +            pendingTasks.put(entry.getKey().getHostAddress(), entry.getValue().largeMessages.getPendingMessages());
          return pendingTasks;
      }