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 2014/08/13 16:50:49 UTC

[1/2] git commit: Workaround Netty bug by not use CompositeByteBuf

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 42f2f8057 -> f08785fcc


Workaround Netty bug by not use CompositeByteBuf

Due a bug in Netty [1] using a CompositeByteBuf can lead to data-corruption when partial writes happen on a socket. To workaround this bug we replaced the CompositeByteBuf usage (which was caused by Unpooled.wrappedBuffer(...)).

Beside work around the Netty bug this also reduce the object creation and so should stay in place even after Netty will be upgraded to 4.0.22.Final.

This commit also reverted the partial workaround that was in place before.

[1] https://github.com/netty/netty/issues/2761

patch by normanm; reviewed by tjake for CASSANDRA-7695


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

Branch: refs/heads/cassandra-2.1
Commit: fe4c8c2c5709d1c909fcacd8af081a8394c99554
Parents: 397c0b7
Author: Norman Maurer <nm...@redhat.com>
Authored: Wed Aug 13 15:41:59 2014 +0200
Committer: Jake Luciani <ja...@apache.org>
Committed: Wed Aug 13 10:48:34 2014 -0400

----------------------------------------------------------------------
 src/java/org/apache/cassandra/service/CassandraDaemon.java | 9 ---------
 src/java/org/apache/cassandra/transport/Frame.java         | 4 ++--
 2 files changed, 2 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe4c8c2c/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index 5c88cb1..7c85f81 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -37,7 +37,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.addthis.metrics.reporter.config.ReporterConfig;
-import io.netty.util.internal.PlatformDependent;
 import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor;
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
@@ -70,14 +69,6 @@ import org.apache.cassandra.utils.Pair;
  */
 public class CassandraDaemon
 {
-
-    //Workaround for netty issue
-    static 
-    {
-        System.setProperty("io.netty.noUnsafe","true");
-        assert !PlatformDependent.hasUnsafe();
-    }
-
     public static final String MBEAN_NAME = "org.apache.cassandra.db:type=NativeAccess";
 
     // Have a dedicated thread to call exit to avoid deadlock in the case where the thread that wants to invoke exit

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe4c8c2c/src/java/org/apache/cassandra/transport/Frame.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Frame.java b/src/java/org/apache/cassandra/transport/Frame.java
index 7ca1115..01bee10 100644
--- a/src/java/org/apache/cassandra/transport/Frame.java
+++ b/src/java/org/apache/cassandra/transport/Frame.java
@@ -23,7 +23,6 @@ import java.util.EnumSet;
 import java.util.List;
 
 import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
 import io.netty.channel.*;
 import io.netty.handler.codec.ByteToMessageDecoder;
 import io.netty.handler.codec.MessageToMessageDecoder;
@@ -296,7 +295,8 @@ public class Frame
             header.writeByte(type.opcode);
             header.writeInt(frame.body.readableBytes());
 
-            results.add(Unpooled.wrappedBuffer(header, frame.body));
+            results.add(header);
+            results.add(frame.body);
         }
     }
 


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

Posted by ja...@apache.org.
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: f08785fcc2a4dd5ad4c2c621808d497c3eb6245c
Parents: 42f2f80 fe4c8c2
Author: Jake Luciani <ja...@apache.org>
Authored: Wed Aug 13 10:50:36 2014 -0400
Committer: Jake Luciani <ja...@apache.org>
Committed: Wed Aug 13 10:50:36 2014 -0400

----------------------------------------------------------------------
 src/java/org/apache/cassandra/service/CassandraDaemon.java | 9 ---------
 src/java/org/apache/cassandra/transport/Frame.java         | 4 ++--
 2 files changed, 2 insertions(+), 11 deletions(-)
----------------------------------------------------------------------