You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2017/08/21 22:43:30 UTC

[01/10] cassandra git commit: Uncaught exceptions in Netty pipeline

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 9b6fd54a4 -> e1aa7d32c
  refs/heads/cassandra-3.0 8378bfc51 -> dc32ed80d
  refs/heads/cassandra-3.11 1619413e5 -> b726f26ae
  refs/heads/trunk 6e42dd215 -> 4803742ec


Uncaught exceptions in Netty pipeline

patch by norman maurer; reviewed by jasobrown for CASSANDRA-13649


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

Branch: refs/heads/cassandra-2.2
Commit: e1aa7d32c95ff3f06de97803a186ff432237ecab
Parents: 9b6fd54
Author: Norman Maurer <no...@apple.com>
Authored: Fri Aug 18 10:32:39 2017 +0200
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:31:47 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5c1d1e5..2fbb7e9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.11
+ * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
  * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
  * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
  * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Message.java b/src/java/org/apache/cassandra/transport/Message.java
index e4f5cac..2c2048f 100644
--- a/src/java/org/apache/cassandra/transport/Message.java
+++ b/src/java/org/apache/cassandra/transport/Message.java
@@ -540,10 +540,14 @@ public abstract class Message
             flusher.queued.add(item);
             flusher.start();
         }
+    }
+
+    @ChannelHandler.Sharable
+    public static final class ExceptionHandler extends ChannelInboundHandlerAdapter
+    {
 
         @Override
         public void exceptionCaught(final ChannelHandlerContext ctx, Throwable cause)
-        throws Exception
         {
             // Provide error message to client in case channel is still open
             UnexpectedChannelExceptionHandler handler = new UnexpectedChannelExceptionHandler(ctx.channel(), false);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Server.java b/src/java/org/apache/cassandra/transport/Server.java
index d1047f9..c91d37d 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -270,6 +270,7 @@ public class Server implements CassandraDaemon.Server
         private static final Frame.Decompressor frameDecompressor = new Frame.Decompressor();
         private static final Frame.Compressor frameCompressor = new Frame.Compressor();
         private static final Frame.Encoder frameEncoder = new Frame.Encoder();
+        private static final Message.ExceptionHandler exceptionHandler = new Message.ExceptionHandler();
         private static final Message.Dispatcher dispatcher = new Message.Dispatcher();
         private static final ConnectionLimitHandler connectionLimitHandler = new ConnectionLimitHandler();
 
@@ -303,6 +304,14 @@ public class Server implements CassandraDaemon.Server
             pipeline.addLast("messageDecoder", messageDecoder);
             pipeline.addLast("messageEncoder", messageEncoder);
 
+            // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+            // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+            // eventExecutorGroup may not enforce strict ordering for channel events.
+            // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+            // correctly handled before the handler itself is removed.
+            // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+            pipeline.addLast("exceptionHandler", exceptionHandler);
+
             pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[02/10] cassandra git commit: Uncaught exceptions in Netty pipeline

Posted by ja...@apache.org.
Uncaught exceptions in Netty pipeline

patch by norman maurer; reviewed by jasobrown for CASSANDRA-13649


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

Branch: refs/heads/cassandra-3.0
Commit: e1aa7d32c95ff3f06de97803a186ff432237ecab
Parents: 9b6fd54
Author: Norman Maurer <no...@apple.com>
Authored: Fri Aug 18 10:32:39 2017 +0200
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:31:47 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5c1d1e5..2fbb7e9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.11
+ * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
  * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
  * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
  * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Message.java b/src/java/org/apache/cassandra/transport/Message.java
index e4f5cac..2c2048f 100644
--- a/src/java/org/apache/cassandra/transport/Message.java
+++ b/src/java/org/apache/cassandra/transport/Message.java
@@ -540,10 +540,14 @@ public abstract class Message
             flusher.queued.add(item);
             flusher.start();
         }
+    }
+
+    @ChannelHandler.Sharable
+    public static final class ExceptionHandler extends ChannelInboundHandlerAdapter
+    {
 
         @Override
         public void exceptionCaught(final ChannelHandlerContext ctx, Throwable cause)
-        throws Exception
         {
             // Provide error message to client in case channel is still open
             UnexpectedChannelExceptionHandler handler = new UnexpectedChannelExceptionHandler(ctx.channel(), false);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Server.java b/src/java/org/apache/cassandra/transport/Server.java
index d1047f9..c91d37d 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -270,6 +270,7 @@ public class Server implements CassandraDaemon.Server
         private static final Frame.Decompressor frameDecompressor = new Frame.Decompressor();
         private static final Frame.Compressor frameCompressor = new Frame.Compressor();
         private static final Frame.Encoder frameEncoder = new Frame.Encoder();
+        private static final Message.ExceptionHandler exceptionHandler = new Message.ExceptionHandler();
         private static final Message.Dispatcher dispatcher = new Message.Dispatcher();
         private static final ConnectionLimitHandler connectionLimitHandler = new ConnectionLimitHandler();
 
@@ -303,6 +304,14 @@ public class Server implements CassandraDaemon.Server
             pipeline.addLast("messageDecoder", messageDecoder);
             pipeline.addLast("messageEncoder", messageEncoder);
 
+            // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+            // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+            // eventExecutorGroup may not enforce strict ordering for channel events.
+            // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+            // correctly handled before the handler itself is removed.
+            // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+            pipeline.addLast("exceptionHandler", exceptionHandler);
+
             pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11

Posted by ja...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11


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

Branch: refs/heads/cassandra-3.11
Commit: b726f26aee0aa0e42a4d96a69fa8a761610c928c
Parents: 1619413 dc32ed8
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:36:58 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:37:43 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by ja...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.0
Commit: dc32ed80d727ca644d2162fbf0fb316811cd1adf
Parents: 8378bfc e1aa7d3
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:33:19 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:36:38 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 6faaa48,2fbb7e9..a0a61ac
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,26 -1,6 +1,27 @@@
 -2.2.11
 +3.0.15
 + * Randomize batchlog endpoint selection with only 1 or 2 racks (CASSANDRA-12884)
 + * Fix digest calculation for counter cells (CASSANDRA-13750)
 + * Fix ColumnDefinition.cellValueType() for non-frozen collection and change SSTabledump to use type.toJSONString() (CASSANDRA-13573)
 + * Skip materialized view addition if the base table doesn't exist (CASSANDRA-13737)
 + * Drop table should remove corresponding entries in dropped_columns table (CASSANDRA-13730)
 + * Log warn message until legacy auth tables have been migrated (CASSANDRA-13371)
 + * Fix incorrect [2.1 <- 3.0] serialization of counter cells created in 2.0 (CASSANDRA-13691)
 + * Fix invalid writetime for null cells (CASSANDRA-13711)
 + * Fix ALTER TABLE statement to atomically propagate changes to the table and its MVs (CASSANDRA-12952)
 + * Fixed ambiguous output of nodetool tablestats command (CASSANDRA-13722)
 + * JMXEnabledThreadPoolExecutor with corePoolSize equal to maxPoolSize (Backport CASSANDRA-13329)
 + * Fix Digest mismatch Exception if hints file has UnknownColumnFamily (CASSANDRA-13696)
 + * Purge tombstones created by expired cells (CASSANDRA-13643)
 + * Make concat work with iterators that have different subsets of columns (CASSANDRA-13482)
 + * Set test.runners based on cores and memory size (CASSANDRA-13078)
 + * Allow different NUMACTL_ARGS to be passed in (CASSANDRA-13557)
 + * Allow native function calls in CQLSSTableWriter (CASSANDRA-12606)
 + * Fix secondary index queries on COMPACT tables (CASSANDRA-13627)
 + * Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568)
 + * sstabledump reports incorrect usage for argument order (CASSANDRA-13532)
 +Merged from 2.2:
+  * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
 - * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
 + * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067)
   * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
   * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)
   * Fix toJSONString for the UDT, tuple and collection types (CASSANDRA-13592)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/transport/Server.java
index f35d507,c91d37d..7df194d
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@@ -327,10 -304,15 +328,18 @@@ public class Server implements Cassandr
              pipeline.addLast("messageDecoder", messageDecoder);
              pipeline.addLast("messageEncoder", messageEncoder);
  
+             // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+             // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+             // eventExecutorGroup may not enforce strict ordering for channel events.
+             // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+             // correctly handled before the handler itself is removed.
+             // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+             pipeline.addLast("exceptionHandler", exceptionHandler);
+ 
 -            pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            if (server.eventExecutorGroup != null)
 +                pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            else
 +                pipeline.addLast("executor", dispatcher);
          }
      }
  


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[04/10] cassandra git commit: Uncaught exceptions in Netty pipeline

Posted by ja...@apache.org.
Uncaught exceptions in Netty pipeline

patch by norman maurer; reviewed by jasobrown for CASSANDRA-13649


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

Branch: refs/heads/trunk
Commit: e1aa7d32c95ff3f06de97803a186ff432237ecab
Parents: 9b6fd54
Author: Norman Maurer <no...@apple.com>
Authored: Fri Aug 18 10:32:39 2017 +0200
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:31:47 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5c1d1e5..2fbb7e9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.11
+ * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
  * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
  * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
  * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Message.java b/src/java/org/apache/cassandra/transport/Message.java
index e4f5cac..2c2048f 100644
--- a/src/java/org/apache/cassandra/transport/Message.java
+++ b/src/java/org/apache/cassandra/transport/Message.java
@@ -540,10 +540,14 @@ public abstract class Message
             flusher.queued.add(item);
             flusher.start();
         }
+    }
+
+    @ChannelHandler.Sharable
+    public static final class ExceptionHandler extends ChannelInboundHandlerAdapter
+    {
 
         @Override
         public void exceptionCaught(final ChannelHandlerContext ctx, Throwable cause)
-        throws Exception
         {
             // Provide error message to client in case channel is still open
             UnexpectedChannelExceptionHandler handler = new UnexpectedChannelExceptionHandler(ctx.channel(), false);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Server.java b/src/java/org/apache/cassandra/transport/Server.java
index d1047f9..c91d37d 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -270,6 +270,7 @@ public class Server implements CassandraDaemon.Server
         private static final Frame.Decompressor frameDecompressor = new Frame.Decompressor();
         private static final Frame.Compressor frameCompressor = new Frame.Compressor();
         private static final Frame.Encoder frameEncoder = new Frame.Encoder();
+        private static final Message.ExceptionHandler exceptionHandler = new Message.ExceptionHandler();
         private static final Message.Dispatcher dispatcher = new Message.Dispatcher();
         private static final ConnectionLimitHandler connectionLimitHandler = new ConnectionLimitHandler();
 
@@ -303,6 +304,14 @@ public class Server implements CassandraDaemon.Server
             pipeline.addLast("messageDecoder", messageDecoder);
             pipeline.addLast("messageEncoder", messageEncoder);
 
+            // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+            // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+            // eventExecutorGroup may not enforce strict ordering for channel events.
+            // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+            // correctly handled before the handler itself is removed.
+            // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+            pipeline.addLast("exceptionHandler", exceptionHandler);
+
             pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by ja...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.11
Commit: dc32ed80d727ca644d2162fbf0fb316811cd1adf
Parents: 8378bfc e1aa7d3
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:33:19 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:36:38 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 6faaa48,2fbb7e9..a0a61ac
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,26 -1,6 +1,27 @@@
 -2.2.11
 +3.0.15
 + * Randomize batchlog endpoint selection with only 1 or 2 racks (CASSANDRA-12884)
 + * Fix digest calculation for counter cells (CASSANDRA-13750)
 + * Fix ColumnDefinition.cellValueType() for non-frozen collection and change SSTabledump to use type.toJSONString() (CASSANDRA-13573)
 + * Skip materialized view addition if the base table doesn't exist (CASSANDRA-13737)
 + * Drop table should remove corresponding entries in dropped_columns table (CASSANDRA-13730)
 + * Log warn message until legacy auth tables have been migrated (CASSANDRA-13371)
 + * Fix incorrect [2.1 <- 3.0] serialization of counter cells created in 2.0 (CASSANDRA-13691)
 + * Fix invalid writetime for null cells (CASSANDRA-13711)
 + * Fix ALTER TABLE statement to atomically propagate changes to the table and its MVs (CASSANDRA-12952)
 + * Fixed ambiguous output of nodetool tablestats command (CASSANDRA-13722)
 + * JMXEnabledThreadPoolExecutor with corePoolSize equal to maxPoolSize (Backport CASSANDRA-13329)
 + * Fix Digest mismatch Exception if hints file has UnknownColumnFamily (CASSANDRA-13696)
 + * Purge tombstones created by expired cells (CASSANDRA-13643)
 + * Make concat work with iterators that have different subsets of columns (CASSANDRA-13482)
 + * Set test.runners based on cores and memory size (CASSANDRA-13078)
 + * Allow different NUMACTL_ARGS to be passed in (CASSANDRA-13557)
 + * Allow native function calls in CQLSSTableWriter (CASSANDRA-12606)
 + * Fix secondary index queries on COMPACT tables (CASSANDRA-13627)
 + * Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568)
 + * sstabledump reports incorrect usage for argument order (CASSANDRA-13532)
 +Merged from 2.2:
+  * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
 - * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
 + * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067)
   * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
   * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)
   * Fix toJSONString for the UDT, tuple and collection types (CASSANDRA-13592)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/transport/Server.java
index f35d507,c91d37d..7df194d
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@@ -327,10 -304,15 +328,18 @@@ public class Server implements Cassandr
              pipeline.addLast("messageDecoder", messageDecoder);
              pipeline.addLast("messageEncoder", messageEncoder);
  
+             // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+             // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+             // eventExecutorGroup may not enforce strict ordering for channel events.
+             // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+             // correctly handled before the handler itself is removed.
+             // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+             pipeline.addLast("exceptionHandler", exceptionHandler);
+ 
 -            pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            if (server.eventExecutorGroup != null)
 +                pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            else
 +                pipeline.addLast("executor", dispatcher);
          }
      }
  


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[03/10] cassandra git commit: Uncaught exceptions in Netty pipeline

Posted by ja...@apache.org.
Uncaught exceptions in Netty pipeline

patch by norman maurer; reviewed by jasobrown for CASSANDRA-13649


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

Branch: refs/heads/cassandra-3.11
Commit: e1aa7d32c95ff3f06de97803a186ff432237ecab
Parents: 9b6fd54
Author: Norman Maurer <no...@apple.com>
Authored: Fri Aug 18 10:32:39 2017 +0200
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:31:47 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5c1d1e5..2fbb7e9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.11
+ * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
  * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
  * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
  * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Message.java b/src/java/org/apache/cassandra/transport/Message.java
index e4f5cac..2c2048f 100644
--- a/src/java/org/apache/cassandra/transport/Message.java
+++ b/src/java/org/apache/cassandra/transport/Message.java
@@ -540,10 +540,14 @@ public abstract class Message
             flusher.queued.add(item);
             flusher.start();
         }
+    }
+
+    @ChannelHandler.Sharable
+    public static final class ExceptionHandler extends ChannelInboundHandlerAdapter
+    {
 
         @Override
         public void exceptionCaught(final ChannelHandlerContext ctx, Throwable cause)
-        throws Exception
         {
             // Provide error message to client in case channel is still open
             UnexpectedChannelExceptionHandler handler = new UnexpectedChannelExceptionHandler(ctx.channel(), false);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1aa7d32/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Server.java b/src/java/org/apache/cassandra/transport/Server.java
index d1047f9..c91d37d 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -270,6 +270,7 @@ public class Server implements CassandraDaemon.Server
         private static final Frame.Decompressor frameDecompressor = new Frame.Decompressor();
         private static final Frame.Compressor frameCompressor = new Frame.Compressor();
         private static final Frame.Encoder frameEncoder = new Frame.Encoder();
+        private static final Message.ExceptionHandler exceptionHandler = new Message.ExceptionHandler();
         private static final Message.Dispatcher dispatcher = new Message.Dispatcher();
         private static final ConnectionLimitHandler connectionLimitHandler = new ConnectionLimitHandler();
 
@@ -303,6 +304,14 @@ public class Server implements CassandraDaemon.Server
             pipeline.addLast("messageDecoder", messageDecoder);
             pipeline.addLast("messageEncoder", messageEncoder);
 
+            // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+            // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+            // eventExecutorGroup may not enforce strict ordering for channel events.
+            // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+            // correctly handled before the handler itself is removed.
+            // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+            pipeline.addLast("exceptionHandler", exceptionHandler);
+
             pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by ja...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/trunk
Commit: dc32ed80d727ca644d2162fbf0fb316811cd1adf
Parents: 8378bfc e1aa7d3
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:33:19 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:36:38 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 6faaa48,2fbb7e9..a0a61ac
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,26 -1,6 +1,27 @@@
 -2.2.11
 +3.0.15
 + * Randomize batchlog endpoint selection with only 1 or 2 racks (CASSANDRA-12884)
 + * Fix digest calculation for counter cells (CASSANDRA-13750)
 + * Fix ColumnDefinition.cellValueType() for non-frozen collection and change SSTabledump to use type.toJSONString() (CASSANDRA-13573)
 + * Skip materialized view addition if the base table doesn't exist (CASSANDRA-13737)
 + * Drop table should remove corresponding entries in dropped_columns table (CASSANDRA-13730)
 + * Log warn message until legacy auth tables have been migrated (CASSANDRA-13371)
 + * Fix incorrect [2.1 <- 3.0] serialization of counter cells created in 2.0 (CASSANDRA-13691)
 + * Fix invalid writetime for null cells (CASSANDRA-13711)
 + * Fix ALTER TABLE statement to atomically propagate changes to the table and its MVs (CASSANDRA-12952)
 + * Fixed ambiguous output of nodetool tablestats command (CASSANDRA-13722)
 + * JMXEnabledThreadPoolExecutor with corePoolSize equal to maxPoolSize (Backport CASSANDRA-13329)
 + * Fix Digest mismatch Exception if hints file has UnknownColumnFamily (CASSANDRA-13696)
 + * Purge tombstones created by expired cells (CASSANDRA-13643)
 + * Make concat work with iterators that have different subsets of columns (CASSANDRA-13482)
 + * Set test.runners based on cores and memory size (CASSANDRA-13078)
 + * Allow different NUMACTL_ARGS to be passed in (CASSANDRA-13557)
 + * Allow native function calls in CQLSSTableWriter (CASSANDRA-12606)
 + * Fix secondary index queries on COMPACT tables (CASSANDRA-13627)
 + * Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568)
 + * sstabledump reports incorrect usage for argument order (CASSANDRA-13532)
 +Merged from 2.2:
+  * Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
 - * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067) 
 + * Prevent integer overflow on exabyte filesystems (CASSANDRA-13067)
   * Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
   * Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)
   * Fix toJSONString for the UDT, tuple and collection types (CASSANDRA-13592)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc32ed80/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/transport/Server.java
index f35d507,c91d37d..7df194d
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@@ -327,10 -304,15 +328,18 @@@ public class Server implements Cassandr
              pipeline.addLast("messageDecoder", messageDecoder);
              pipeline.addLast("messageEncoder", messageEncoder);
  
+             // The exceptionHandler will take care of handling exceptionCaught(...) events while still running
+             // on the same EventLoop as all previous added handlers in the pipeline. This is important as the used
+             // eventExecutorGroup may not enforce strict ordering for channel events.
+             // As the exceptionHandler runs in the EventLoop as the previous handlers we are sure all exceptions are
+             // correctly handled before the handler itself is removed.
+             // See https://issues.apache.org/jira/browse/CASSANDRA-13649
+             pipeline.addLast("exceptionHandler", exceptionHandler);
+ 
 -            pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            if (server.eventExecutorGroup != null)
 +                pipeline.addLast(server.eventExecutorGroup, "executor", dispatcher);
 +            else
 +                pipeline.addLast("executor", dispatcher);
          }
      }
  


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11

Posted by ja...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11


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

Branch: refs/heads/trunk
Commit: b726f26aee0aa0e42a4d96a69fa8a761610c928c
Parents: 1619413 dc32ed8
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:36:58 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:37:43 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b726f26a/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[10/10] cassandra git commit: Merge branch 'cassandra-3.11' into trunk

Posted by ja...@apache.org.
Merge branch 'cassandra-3.11' into trunk


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

Branch: refs/heads/trunk
Commit: 4803742eca5349994e2fb7118008c9b30b9dac4e
Parents: 6e42dd2 b726f26
Author: Jason Brown <ja...@gmail.com>
Authored: Mon Aug 21 15:39:06 2017 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Aug 21 15:39:40 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                          | 1 +
 src/java/org/apache/cassandra/transport/Message.java | 6 +++++-
 src/java/org/apache/cassandra/transport/Server.java  | 9 +++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4803742e/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4803742e/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org